LeetCode() Find Minimum in Rotated Sorted Array

不明白这个思路

class Solution {
public:
    int findMin(vector<int>& num) {
       int size = num.size() - 1;
        int l = 0;
        int r = size;
        while(l <= r) {
            int mid = l + (r - l) / 2;
            if (num[mid] > num[size]) {
                //left
                l = mid + 1;
            } else {
                r = mid - 1;
            }
        }
        return num[l];
    }
};

二分查找模板

while (l < r - 1) {
 2             int m = l + (r - l) / 2;
 3             
 4             // means that there is no rotate.
 5             ... 这里添加各种退出条件,比如找到了目标值等 8             
 9             // left side is sorted.
10             if (A[m] > A[l]) {
11                 l = m;
12             } else {
13                 r = m;
14             }
15         }    

  

原文地址:https://www.cnblogs.com/yanqi110/p/4967379.html