一天一道Leetcode 單調數列

2021-10-20 18:38:55 字數 3641 閱讀 8029

本篇推文共計2000個字,閱讀時間約3分鐘。

題目描述

題目描述:

如果陣列是單調遞增或單調遞減的,那麼這個陣列就是單調的陣列。

如果對於所有i <= j,a[i] <= a[j]

那麼陣列 a 是單調遞增的。

如果對於所有i<= j,a[i]> = a[j]

那麼陣列 a 是單調遞減的。

當給定的陣列 a是單調陣列時返回 true,

否則返回 false。

示例:

輸入:[1,2,2,3]

輸出:true

輸入:[6,5,4,4]

輸出:true

輸入:[1,3,2]

輸出:false

**分析

既然需要判斷陣列是否單調遞增或者單調遞減

可以先將原陣列進行公升序或者降序排序,再將排序後的陣列與原陣列進行比較,判斷是否相等,如果相等則輸出true,不相等則輸出false。

這裡引入sorted()的函式概念

sorted()函式是python3的內建函式

sorted()函式的主要用法是對所有可迭代的物件進行排序操作。

如下所示:

sorted(iterable, key=none, reverse=false)
iterable:可迭代物件。key:主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。reverse:排序規則,reverse= true 降序 , reverse = false 公升序(預設)。sorted()函式的實際用法如下所示:

a=[8,5,5,9,1]

# 預設為公升序

sorted(a)=[1,5,5,8,9]

# 此時為降序

sorted(a, reverse = true)=[9,8,5,5,1]

由此可以得到本題的解題**:

class solution:

def ismonotonic(self, a: list[int]) -> bool:

b=sorted(a)

c=sorted(a,reverse=true)

if b==a or c==a:

return true

return false

a為輸入列表,b為將a進行公升序後的列表,c為將a進行降序後的列表。緊接著乙個判斷語句,只要b==a(單調遞增)或者c==a(單調遞減)則輸出true,否則輸出false

我們將**進行簡化:

class solution:

def ismonotonic(self, a: list[int]) -> bool:

return a==sorted(a) or a==sorted(a,reverse=true)

直接將判斷語句整合到return語句如果a==sorted(a)或者a==sorted(a,reverse=true)語句中乙個條件為1,則輸出true,否則輸出false

往期回顧

【年終總結】你好2021,再見2020。

【快速寫好畢業**】你不得不知曉的七個常用文獻搜尋平台

【一天一道leetcode】兩數之和

【秋招紀實錄】一篇特別正經的【無領導小組討論】經驗分享

【秋招紀實錄】一篇特別正經的【國企】求職經驗分享

你與世界

只差乙個

一天一道leetcode4

given an unsorted array of integers,find the length of the longest consecutive elements sequence.for example,given 100,4,200,1,3,2 the longest consecu...

一天一道簡單題目(1)

給你乙個整型陣列,需要你返回兩個數,這兩個數相加等於乙個指定的數。你必須保證每乙個輸入的陣列都有且只有乙個確定的解。使用最笨的方法,用兩個迴圈巢狀,將這個陣列中所有的組合都測試一遍,直到最後得到正確的答案為止。private static string solve int arr,int targe...

013 一天一道C C 程式設計題

第13題 請編乙個函式void fun int tt m n int pp n tt指向乙個m行n列的二維陣列,求出二維陣列每列中最小元素,並依次放入pp所指一維陣列中。二維陣列中的數已在主函式中賦予。include using namespace std define m 5 define n 5...