双指针解法--------类似于二分查找

 

 

解题思路
利用双指针解法,设置一个left 指针指向左端 left=1;(这里也可以指向0 但是后期判断时候需要注意) right=arr.size()-1;(因为arr.size()指向最后一个元素的下一位,所以减一);
当两个指正相遇是则他们就是顶峰 返回left 或者right 都行
class Solution {
public:
    int peakIndexInMountainArray(vector<int>& arr) {
       int left=1,right=arr.size()-1;
       if(arr.size()>=3){
           while(left<right){
               if(arr[left]>=arr[left-1]){
                   left=left+1;
               }else{
                   right=right-1;
               }
           }
          
       }
        return left-1;
    }
};

 

posted @ 2021-06-15 10:39  AI_Mi  阅读(40)  评论(0)    收藏  举报