其他分享
首页 > 其他分享> > 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;
    }
}

三、运行情况
在这里插入图片描述
四、刷题总结

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

标签:return,数列,896,int,flag,刷题,true,单调,进阶
来源: https://blog.csdn.net/qq_44111805/article/details/114218220