Binary Search
class Solution {
public:
void sol(vector<int>& nums, int s, int e, int& res, int& index) {
if(s >= e) {
if(res < nums[s]) {
res = nums[s];
index = s;
}
return;
}
int mid = s +(e-s)/2;
sol(nums, s, mid, res, index);
sol(nums, mid+1, e, res, index);
}
int findPeakElement(vector<int>& nums) {
int res = INT_MIN;
int i = 0;
sol(nums, 0, nums.size()-1, res, i);
return i;
}
};
Last updated
Was this helpful?