NC105-二分查找 题解

二分查找

http://www.nowcoder.com/questionTerminal/7bc4a1c7c371425d9faa9d1b511fe193

参考LeetCode 35. Search Insert Position

class Solution {
public:
    /**
     * 二分查找
     * @param n int整型 数组长度
     * @param v int整型 查找值
     * @param a int整型vector 有序数组
     * @return int整型
     */
    int upper_bound_(int n, int v, vector<int>& a) {
        // write code here
         int left = 0, right = n;
        while (left < right) {
            int mid = left + (right - left) / 2;
            if (a[mid] < v) left = mid + 1;
            else right = mid;
        }
        return right + 1;

        return n + 1;
    }
};
全部评论
老哥 你这样通过不了。 在while 下面添加 if( a[n-1] < v){ return n+1; } 才行。
点赞 回复 分享
发布于 2020-12-27 21:44
那可不就是输出2吗
点赞 回复 分享
发布于 2020-12-19 09:46
老哥你这个是不是有点问题,我自己试了组用例不对 输入:2,2,[1,2] 输出:2
点赞 回复 分享
发布于 2020-11-23 19:13

相关推荐

评论
37
收藏
分享

创作者周榜

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