class Solution{//162.O(log N) O(1)
public:
int findPeakElement(vector<int>& a){//162.O(log N) O(1)
int n=(int)a.size(),l=0,r=n-1; //長與左右邊
while(l<=r){
int m=(l+r)>>1;//>>右移位運算子
if((m==0||a[m]>a[m-1])&&(m==n-1||a[m]>a[m+1])) return m; //早停:同時大於左右鄰
if(m<n-1 && a[m]<a[m+1]) l=m+1; else r=m-1;//斜率判斷:上升往右,否則往左
}
return -1;// 理論上不會到
}
};
雖說沒有早停稍微省記憶體但還是想早停
早上原本想用手機文但會跳轉失敗,切成電腦版可編輯但不能貼上,還是回家用電腦發文囉:)