本篇推文共計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...