162. Find Peak Element
Binary Search: iteration
class Solution {
public:
int findPeakElement(vector<int>& nums) {
int l = 0, r = nums.size() - 1;
while (l < r) {
int mid = (r - l) / 2 + l;
if (nums[mid] < nums[mid + 1])
l = mid + 1;
else r = mid;
}
return l;
}
};
Sequential Search: brilliant though O(n)
class Solution {
public:
int findPeakElement(const vector<int> &num) {
for(int i = 1; i < num.size(); i ++)
{
if(num[i] < num[i-1])
{// <
return i-1;
}
}
return num.size()-1;
}
};