美文网首页
转载 二分查找细节

转载 二分查找细节

作者: 1nvad3r | 来源:发表于2020-10-03 10:26 被阅读0次

    https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/er-fen-cha-zhao-suan-fa-xi-jie-xiang-jie-by-labula/

    总结:

    1. 寻找一个数:
      lo = 0, hi = nums.length -1 , while (lo <= hi)
      这是左闭右闭区间,只有当lo等于hi+1时,循环才会终止。
      如果是while(lo < hi) 那么lo等于hi时,循环就终止了,搜索的范围会少一个数。

    2.寻找一个边界:
    lo = 0,hi = nums.length , while (lo < hi)
    这是左闭右开区间。
    最后返回lo或者hi都可以,因为循环终止的条件就是lo 等于 hi。

    //初值必须覆盖解的所有可能取值
    int solve(int lo, int hi) {
        int mid;
        while (lo < hi) {
            mid = (lo + hi) / 2;
            if (条件成立) {
                hi = mid;
            } else {
                lo = mid + 1;
            }
        }
        return lo;
    }
    

    相关文章

      网友评论

          本文标题:转载 二分查找细节

          本文链接:https://www.haomeiwen.com/subject/rpcwuktx.html