896. 单调数列

如果数组是单调递增或单调递减的,那么它是单调的

如果对于所有 i <= jA[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= jA[i]> = A[j],那么数组 A 是单调递减的。

当给定的数组 A 是单调数组时返回 true,否则返回 false

示例 1:

输入:[1,2,2,3]
输出:true

示例 2:

输入:[6,5,4,4]
输出:true

示例 3:

输入:[1,3,2]
输出:false

示例 4:

输入:[1,2,4,5]
输出:true

示例 5:

输入:[1,1,1]
输出:true

提示:

  1. 1 <= A.length <= 50000
  2. -100000 <= A[i] <= 100000

思路:通过头尾元素判定是哪种单调数列,然后遍历求解,比较简单,目前beat 99%

class Solution {
    public boolean isMonotonic(int[] A) {
        int i=0,j=A.length-1;
        int flag = (A[A.length-1]>=A[0]) ? 1 : 0;   //判断属于那种数列 1表示单调递增  0表示单调递减
        if(flag==1){
        for(;i<j;--j,++i){
            if((A[i+1]>=A[i] && A[j]>=A[j-1]) ) continue;
            else return false;
        }
    } else {
                 for(;i<j;--j,++i){
            if((A[i+1]<=A[i] && A[j]<=A[j-1]) ) continue;
            else return false;
        }    
     }
        return true; 
   }
}
原文地址:https://www.cnblogs.com/chen-jack/p/9936649.html