题目

如果数组是单调递增或单调递减的,那么它是单调的。

如果对于所有i <= jA[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= jA[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

提示:

  • 1 <= A.length <= 50000
  • -100000 <= A[i] <= 100000

题解

1
2
3
4
5
6
7
8
9
10
11
class Solution:
def isMonotonic(self, A: List[int]) -> bool:
if A[0]<=A[-1]:
for i in range(1,len(A)):
if A[i]<A[i-1] or A[i]>A[-1]:
return False
else:
for i in range(1,len(A)):
if A[i]>A[i-1] or A[i]>A[0]:
return False
return True

先判断了一下单调增还是单调减然后遍历数组。

先排序然后判断是否和原数组相同也可吧,时间复杂度会高一些。