【力扣刷题】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
class Solution {
public:
bool validMountainArray(vector<int>& arr) {
int l=0,r=arr.size()-1;
if(arr.size()==1)return false;
while(l<arr.size()){
if(arr[l]<arr[l+1]){
l++;
}else{
break;
}
}
while(r>0){
if(arr[r]<arr[r-1]){
r--;
}else{
break;
}
}
if(l==r){
if(l!=0&&l!=arr.size()-1)return true;
else return false;
}else return false;
}
};
版权声明:
作者:Zhang, Hongxing
链接:http://zhx.info/archives/365
来源:张鸿兴的学习历程
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
文章目录
关闭