题解 | #二分查找-II#
二分查找-II
http://www.nowcoder.com/practice/4f470d1d3b734f8aaf2afb014185b395
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size()-1;
int index = -1;
while(left <= right)
{
int mid = (left+right)/2;
if(nums[mid]>target) right = mid-1; // 这两行是二分法常规操作
else if(nums[mid]<target) left = mid+1;
else if(nums[mid] == target){
index = mid; // 因为这里寻找的是最小下标
right = mid-1; // 这一步很重要
}
}
return index;
}
};