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