如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。
当给定的数组 A 是单调数组时返回 true,否则返回 false。
示例 1:
输入:[1,2,2,3]
输出:true
解题思路
找出第一个逆序对,确定数组应该是升序还是降序
代码
class Solution {public boolean isMonotonic(int[] A) {int j=1;while (j<A.length&&A[j]==A[j-1]) j++;//过滤前面相等的子数组 if(j==A.length) return true;boolean up=A[j]-A[j-1]>0;//找出第一个不相等的数对,确定数组应该是升序还是降序for (;j<A.length;j++) {if (A[j] == A[j - 1]) continue;if (up) {//找出不符合的数对if (A[j] - A[j - 1] < 0) return false;} else {if (A[j] - A[j - 1] > 0) return false;}}return true;}
}