class Solution {
public:
 
    int search(vector<int>& nums, int target) {
        // write code here
        int n = nums.size();
        if(n == 0) return -1;
        int l = 0, r = n - 1;
        int mid = 0;
        while(l < r){
             mid = (r + l)/2;
            if(nums[mid] >= target) r = mid ;
            else  l = mid  + 1; //一般都是靠这个去跳出循环,除非l和r相邻不然l指向的一定不是答案,只有target == nums才可能,所以后面返回的就是r下标
        }
         return (nums[r] == target) ? r: -1;
    }
   
};