LeetCode刷题进阶之单调数列 (896)

一、题目
LeetCode刷题进阶之单调数列 (896)
演示示例:
LeetCode刷题进阶之单调数列 (896)

二、测试代码

//两次遍历
class Solution {
    public boolean isMonotonic(int[] A) {
        boolean flag=false;//判断是否为单调数列的标志位
        if(A[0]<=A[A.length-1]){//若数列为递增数列
            for(int i=0;i<A.length-1;++i){
                if(A[i]>A[i+1]){//出现前一个数比后一个数大的异常情况即不为单调递增数列
                    return flag;
                }
            }
           flag=true;
        }
        if(A[0]>=A[A.length-1]){//若数列为递减数列
            for(int i=0;i<A.length-1;++i){
                if(A[i]<A[i+1]){//出现前一个数比后一个数小的异常情况即不为单调递减数列
                    return flag;
                }
            }
            flag=true;
        }
        return flag;
    }
}

三、运行情况
LeetCode刷题进阶之单调数列 (896)
四、刷题总结

本题的主要思路为我们根据数组头尾数字判断是递增还是递减,然后再根据是递增或递减,遍历数组,判断相邻两个数字是否满足单调性要求,若有一组不满足则直接返回false,遍历完成即可返回true。时间复杂度为O ( N ) ,空间复杂度为O ( 1 ) 。

上一篇:力扣896 单调数列(异或法)


下一篇:LeetCode 896