title: 852. Peak Index in a Mountain Array
tags:
- Binary Search
categories: leetcode
comments: false
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr) {
int n = arr.size();
for(int i=1;i<n-1;++i){
if(arr[i]>arr[i-1] && arr[i]>arr[i+1]) return i;
}
return -1;
}
};
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr) {
int n = arr.size();
int l = 0, r =n-1;
while(l+1<n && arr[l] < arr[l+1]) l++;
return l;
}
};
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr) {
int l=0, r = arr.size()-1;
while(l<r){
int mid = l + (r-l)/2;
if(arr[mid]<arr[mid+1]) l = mid+1;
else r = mid;
}
return r;
}
};
- time complexity
O(n)
O(logn)
- space complexity
O(1)