題目描述:
如果陣列是單調遞增或單調遞減的,那麼它是單調的。
如果對於所有 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,有則返...