Leetcode 941. 有效的山脉数组

给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。

让我们回顾一下,如果 arr 满足下述条件,那么它是一个山脉数组:

  • arr.length >= 3
  • 在 0 < i < arr.length - 1 条件下,存在 i 使得:
  • arr[0] < arr[1] < ... arr[i-1] < arr[i]
  • arr[i] > arr[i+1] > ... > arr[arr.length - 1]

示例 1:

输入:arr = [2,1]
输出:false

示例 2:

输入:arr = [3,5,5]
输出:false

示例 3:


输入:arr = [0,3,2,1]
输出:true

提示:

  • 1 <= arr.length <= 104
  • 0 <= arr[i] <= 104

Code:

class Solution {
public:
    bool validMountainArray(vector<int>& arr) {
        if(arr.size()==1)
            return false;
        vector<int>vec=arr;
        int size=arr.size();
        int max1=-1;
        bool flag=false;
        for(int i=1;i<arr.size();i++)
        {
            if(arr[i]==arr[i-1])
                return false;
            
            if(arr[i]>arr[i-1])
            {
                if(flag)
                    return false;
                if(flag==false)
                    max1=arr[i];
            }
            else 
            {
                if(arr[i]>=max1)
                    return false;
                flag=true;
            }
        }
        if(flag==false)
            return false;
        return true;
    }   
};
posted @ 2022-05-22 13:50  萧海~  阅读(20)  评论(0编辑  收藏  举报