【一天一道Leetcode】單調(diào)數(shù)列

本篇推文共計(jì)2000個字,閱讀時間約3分鐘。
01
題目描述

題目描述:
如果數(shù)組是單調(diào)遞增或單調(diào)遞減的,那么這個數(shù)組就是單調(diào)的數(shù)組。
如果對于所有 i <= j,A[i] <= A[j],
那么數(shù)組 A 是單調(diào)遞增的。
如果對于所有 i<= j,A[i]> = A[j],
那么數(shù)組 A 是單調(diào)遞減的。
當(dāng)給定的數(shù)組 A是單調(diào)數(shù)組時返回 true,
否則返回 false。
示例:
輸入:[1,2,2,3]
輸出:true
輸入:[6,5,4,4]
輸出:true
輸入:[1,3,2]
輸出:false
02
代碼分析
既然需要判斷數(shù)組是否單調(diào)遞增或者單調(diào)遞減
則可以先將原數(shù)組進(jìn)行升序或者降序排序,再將排序后的數(shù)組與原數(shù)組進(jìn)行比較,判斷是否相等,如果相等則輸出true,不相等則輸出false。
這里引入sorted()的函數(shù)概念
sorted()函數(shù)是Python3的內(nèi)置函數(shù)
sorted()函數(shù)的主要用法是對所有可迭代的對象進(jìn)行排序操作。
如下所示:
sorted(iterable, key=None, reverse=False)iterable:可迭代對象。
key:主要是用來進(jìn)行比較的元素,只有一個參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中,指定可迭代對象中的一個元素來進(jìn)行排序。
reverse:排序規(guī)則,reverse= True 降序 , reverse = False 升序(默認(rèn))。
sorted()函數(shù)的實(shí)際用法如下所示:
A=[8,5,5,9,1]
# 默認(rèn)為升序
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 FalseA為輸入列表,B為將A進(jìn)行升序后的列表,C為將A進(jìn)行降序后的列表。
緊接著一個判斷語句,
只要B==A(單調(diào)遞增)或者C==A(單調(diào)遞減)
則輸出true,否則輸出false
我們將代碼進(jìn)行簡化:
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

【年終總結(jié)】你好2021,再見2020。

【快速寫好畢業(yè)論文】你不得不知曉的七個常用文獻(xiàn)搜索平臺

【秋招紀(jì)實(shí)錄】一篇特別正經(jīng)的【騰訊】求職經(jīng)驗(yàn)分享

【一天一道Leetcode】兩數(shù)之和

【秋招紀(jì)實(shí)錄】一篇特別正經(jīng)的【無領(lǐng)導(dǎo)小組討論】經(jīng)驗(yàn)分享

【秋招紀(jì)實(shí)錄】一篇特別正經(jīng)的【國企】求職經(jīng)驗(yàn)分享
你與世界
只差一個
公眾號

