2022-01-25 Daily-Challenge
Today I have done leetcode's January LeetCoding Challenge with cpp
.
January LeetCoding Challenge 25
Description
Valid Mountain Array
Given an array of integers arr
, return true
if and only if it is a valid mountain array.
Recall that arr is a mountain array if and only if:
-
arr.length >= 3
-
There exists some
i
with
0 < i < arr.length - 1
such that:
arr[0] < arr[1] < ... < arr[i - 1] < arr[i]
arr[i] > arr[i + 1] > ... > arr[arr.length - 1]
Example 1:
Input: arr = [2,1]
Output: false
Example 2:
Input: arr = [3,5,5]
Output: false
Example 3:
Input: arr = [0,3,2,1]
Output: true
Constraints:
1 <= arr.length <= 10^4
0 <= arr[i] <= 10^4
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
bool validMountainArray(vector<int>& arr) {
int len = arr.size();
if(len < 3) return false;
int pos = 1;
if(arr[pos] <= arr[pos - 1]) return false;
while(pos < len && arr[pos] > arr[pos - 1]) pos += 1;
if(pos == len || arr[pos] == arr[pos - 1]) return false;
while(pos < len && arr[pos] < arr[pos - 1]) pos += 1;
return pos == len;
}
};
// Accepted
// 53/53 cases passed (16 ms)
// Your runtime beats 99.68 % of cpp submissions
// Your memory usage beats 48.39 % of cpp submissions (22.4 MB)