[LeetCode] Find Peak Element

The idea and code is just taken from this link. There is a nice explanation to the code on the answer by BrianLuong1337.

 1 class Solution {
 2 public:
 3     int findPeakElement(vector<int>& nums) {
 4         int n = nums.size(), l = 0, r = n - 1;
 5         while (l < r) {
 6             int m = (l & r) + ((l ^ r) >> 1), mr = m + 1;
 7             if (nums[m] > nums[mr]) r = m;
 8             else l = mr;
 9         }
10         return l;
11     }
12 };

 

posted @ 2015-08-20 00:58  jianchao-li  阅读(223)  评论(0编辑  收藏  举报