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;
}
};

京公网安备 11010502036488号