LeetCode c++ --896. 单调数列

题目描述:

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

如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[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 <= A.length <= 50000
-100000 <= A[i] <= 100000

解题:

class Solution {
public:
    bool isMonotonic(vector<int>& A) {
        int len = A.size();
        //数据个数小于三个数时候
        if(len < 3)return true;
        
        //大于等于三个数时
        // 当序列递增:l = 1,递减 l = -1
        int l = 0;
        if(A[len-1]>=A[0] ) l = 1;
        else l = -1;
        for(int i = 0;i < len -1; )
        {
            if(l == 1 && A[i]<=A[i+1])i++;
            else
                if(l == -1 && A[i]>=A[i+1])i++;
                else
                return false;   
        }
        return true;
    }
};

 

posted @ 2020-08-17 17:15  屁屁-rtq  阅读(146)  评论(0编辑  收藏  举报