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;
    }
};
全部评论

相关推荐

高斯林的信徒:武大简历挂?我勒个骚岗
点赞 评论 收藏
分享
04-17 10:16
门头沟学院 Java
小浪_coder:24届很难找了,马上25的都毕业了还有很多没找到的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务