题目
如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 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
题目分析
Java代码
class Solution {
public boolean isMonotonic(int[] A) {
// 空数组属于单调数组
if(A==null || A.length<2)
return true;
// 定义双指针
int one = 0;
int two = 1;
// 前面如果是相等,是无法判断递增还是递减,需要跳过。
while(A[two]==A[one] && two<A.length-1){
one++;
two++;
}
if(A[two]>A[one]){
while(two<A.length-1){
one++;
two++;
if(A[two]<A[one])
return false;
}
}
if(A[two]<A[one]){
while(two<A.length-1){
one++;
two++;
if(A[two]>A[one])
return false;
}
}
return true;
}
}