如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有 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:
输出:false
示例 4:
输入:[1,1,1]
输出:true
提示:
1 <= A.length <= 50000
-100000 <= A[i] <= 100000
思路:
如果一个数列是单调的,则其排序后的数列应当与原数列相同,当然,还需要考虑升序还是降序。
代码:
class Solution:
def judge(self,a,b):
m=len(a)
for i in range(0,m):
if a[i]!=b[i]:
return False
return True
def isMonotonic(self, A):
"""
:type A: List[int]
:rtype: bool
"""
m=A[:]
A.sort()
if self.judge(m,A):
return True
A.sort(reverse=True)
if self.judge(m,A):
return True
return False
分析:
时间复杂度O(N^2logN),空间复杂度O(n)