题解 | #二分查找-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;
    }
};
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务