寻找峰值—-从中点往高处走

    1. class Solution {
    2. public:
    3. int findPeakElement(vector<int>& nums) {
    4. int left=0;
    5. int right=nums.size()-1;
    6. while(left<right){
    7. int mid=left+(right-left)/2;
    8. if(nums[mid]>nums[mid+1]){
    9. right=mid;
    10. }else{
    11. left=mid+1;
    12. }
    13. }
    14. return left;
    15. }
    16. };
    class Solution {
    public:
        int peakIndexInMountainArray(vector<int>& arr) {
            int left=0;
            int right=arr.size()-1;
            while(left<right){
                int mid=left+(right-left)/2;
                if(arr[mid]<arr[mid+1]){
                    left=mid+1;
                }else{
                    right=mid;
                }
            }
            return left;
        }
    };