感謝
跟33比起來 親民很多
轉幾次都是一個切點除非轉到原順序
int m = l + ((r - l) >> 1); // 通用,免 l+r 溢位
(l + r) / 2 在這題ok
1 就是 右移一位,等同於整數除以 2(取整數部分)
class Solution{//153 O(log n) O(1)
public:
int findMin(vector<int>& a){
int l=0,r=(int)a.size()-1;
while(l<r){
int m = l + ((r - l) >> 1);
if(a[m]<=a[r]) r=m; //
else l=m+1;
}
return a[l];
}
};