Leetcode 896.单调数列
1 题目描述(Leetcode题目链接)
如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有 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
提示:
- 1 <= A.length <= 50000
- -100000 <= A[i] <= 100000
2 题解
用一个标志位记录第一次变化是升还是降,如果之后遇到了不一样的变化就返回False。
class Solution:
def isMonotonic(self, A: List[int]) -> bool:
up_down = None
for i in range(1, len(A)):
if A[i] == A[i-1]:
continue
elif A[i] > A[i-1]:
new = 0
else:
new = 1
if up_down != None and up_down != new:
return False
up_down = new
return True