方法1:先说下我想的那个最垃圾的方法。。就是从头遍历找到第一个做差不等于0的,然后标记一下他是大于0,还是小于0,然后再遍历数组,如果有不满足的就return false
class Solution {
public boolean isMonotonic(int[] A) {
int flag=0;
for(int i=0;i<A.length-1;i++){
//记录第一个不是0的差的符合
if(A[i+1]-A[i]>0){
flag=1;
break;
}
if(A[i+1]-A[i]<0){
flag=-1;
break;
}
}
if(flag==0){
return true;
}
if(flag==1){
for(int i=0;i<A.length-1;i++){
if(A[i+1]-A[i]<0){
return false;
}
}
}
if(flag==-1){
for(int i=0;i<A.length-1;i++){
if(A[i+1]-A[i]>0){
return false;
}
}
}
return true;
}
}
方法2:上大神的方法:lee215 大神一枚
public boolean isMonotonic(int[] A) {
boolean inc = true, dec = true;
for (int i = 1; i < A.length; ++i) {
inc &= A[i - 1] <= A[i];
dec &= A[i - 1] >= A[i];
}
return inc || dec;
}