LeetCode刷題覆盤筆記 896 單調數列

2021-10-20 15:59:58 字數 1958 閱讀 1663

題目描述:

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

如果對於所有 i <= j,a[i] <= a[j],那麼陣列 a 是單調遞增的。 如果對於所有 i <= j,a[i]> = a[j],那麼陣列 a 是單調遞減的。

當給定的陣列 a 是單調陣列時返回 true,否則返回 false。

示例 1:

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

輸出:true

示例 2:

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

輸出:true

示例 3:

輸入:[1,3,2]

輸出:false

示例 4:

輸入:[1,2,4,5]

輸出:true

示例 5:

輸入:[1,1,1]

輸出:true

class

solution

}else

}return

true;}

};

錯誤原因:對於測試用例[1,1,0]返回false,**有漏洞,魯棒性太差

方法一:兩次遍歷

遍歷兩次陣列,分別判斷其是否為單調遞增或單調遞減。

c++版本:

class

solution

};

python版本:

class

solution

(object):

defismonotonic

(self, a)

:return a ==

sorted

(a)or a ==

sorted

(a, reverse =

true

)

方法二:一次遍歷

遍歷陣列 a,若既遇到了 a[i]>a[i+1]又遇到了 a[i』]c++版本:

class

solution

return inc||dec;}}

;

python版本:

class

solution

(object):

defismonotonic

(self, a)

: inc=

true

dec=

true

for i in

range

(len

(a)-1)

:if a[i+1]

>a[i]

: dec=

false

if a[i+1]

: inc=

false

return inc or dec

c++is_sorted()此函式專門用於判斷某個序列是否為有序序列。有序返回true,無序返回false

注:在使用該函式之前,程式中必須先引入此標頭檔案:

#include

python常用運算子總結:

注:(1)c++中 && 和 || 運算子分別對應python的 and 和 or

(2)python //運算子是除後商值向下取整的作用

例如:

9//4 結果為2

(關注後可以免費獲得本人在csdn發布的資源原始碼)

LeetCode刷題覆盤筆記 371 兩整數之和

題目描述 不使用運算子 和 計算兩整數 a b 之和。示例 1 輸入 a 1,b 2 輸出 3 示例 2 輸入 a 2,b 3 輸出 1 a b可以得到兩數相加不進製的加法結果 a b 1可以得到兩數相加產生的進製 c 版本 class solution c 版本 class solution re...

LeetCode刷題筆記(8)

因為這兩天比較忙,沒怎麼刷題,非常有罪惡感,今天開始繼續刷題。今天主攻的是二分查詢的四道題,感覺還是比較簡單的,的確非常高效率的乙個演算法。public class firstbadversion else return left private boolean isbadversion int m...

leetcode刷題python之最小覆蓋子串

題目 給你乙個字串 s 乙個字串 t,請在字串 s 裡面找出 包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 學到了 之前沒記住又遇到了 新函式 counter 可以直接把字串變成字元 別的也行 的結合 all 判斷列表有沒有空字串或者0,有則返...