20210228 896. 单调数列

题目

https://leetcode-cn.com/problems/monotonic-array/

题解

先遍历一边看下第一不相同的地方是递增还是递减,然后在遍历如果不符合上边的规律返回false否则就是true,这里第二次遍历可以不从0开始,可以从第一次的返回的坐标开始

public boolean isMonotonic(int[] A) {
int i = 0;
int sun = 0;
for (; i < A.length - 1; i++) {
if (A[i] == A[i + 1]) {
continue;
}
sun = A[i] < A[i + 1] ? 1 : 0;
break;
}
for (; i < A.length - 1; i++) {
if (sun == 0 && A[i] > A[i + 1]) {
return false;
}
if (sun == 1 && A[i] < A[i + 1]) {
return false;
}
}
return true;
}

还有一种方法记录sun的值,可以有两个变量记录递增或者递减的情况,比如A[i]<A[i+1] a=1,A[i]>A[i+1] b=1,一旦最后a+b=2,则不是递增/减序列

发表评论

邮箱地址不会被公开。 必填项已用*标注