162. Find Peak Element

来源:互联网 发布:java手机 编辑:程序博客网 时间:2024/05/17 01:45
  1. class Solution {  
  2. public:  
  3.     int findPeakElement(const vector<int> &num) {  
  4.          return findPeakElement(num,0,num.size()-1);  
  5.     }  
  6. private:  
  7.     int findPeakElement(const vector<int> &num,int start,int end){  
  8.          if (start==end) return start;  
  9.          if(end-start==1) return num[start]>num[end]?start:end;  
  10.          int mid=(end+start)/2;  
  11.          if(num[mid]>num[mid-1]&&num[mid]>num[mid+1]) return mid;  
  12.          else if(num[mid]<num[mid-1])  return findPeakElement(num,start,mid-1);  
  13.          else return findPeakElement(num,mid+1,end);  
  14.     }  
  15. };  
原创粉丝点击