YSMull
<-- algorithm

如何进行二分查找

模板

记住这个模板,它返回的是: 第一个满足 f(m) == true 的位置

想要知道数学推导,请参考[1]
想要知道模板的应用,请参考[2]

class Solution {
    public int binarySearch(int[] nums) {
        int l = 0, r = nums.length;
        while (l < r) {
            int m = l + (r - l) / 2;
            if (f(m)) {
                r = m;
            } else {
                l = m + 1;
            }
        }
        return l;
    }
}

参考资料