BM17-二分查找-I

题目链接

我的代码

总结:

没啥技巧,就是一个二分查找,要注意的点:

  1. 判断vector为空的办法:
    1). vector.empty();
    2). len = vector.size(),然后判断长度为0即可
  2. 二分查找循环终止条件:
    low > high, 如果这时候还没找到则视为失败!
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param target int整型 
     * @return int整型
     */
    int search(vector<int>& nums, int target) {
        // write code here
        //空数组返回-1
        if(nums.empty())
            return -1;
        //二分查找
        int low = 0, high = nums.size() - 1, mid;
        while(low <= high) {
            mid = (low + high) / 2;
            if(nums[mid] == target)
                //找到返回下标
                return mid;
            else if(nums[mid] < target) {
                low = mid + 1;
            }
            else
                high = mid - 1;
        }
        //没找到返回-1
        return -1;
    }
};
全部评论

相关推荐

今天 15:09
已编辑
上海大学 Java
忙碌的芝士选钝角:招侦探?
点赞 评论 收藏
分享
被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务