二分查找技巧
如果左闭右闭,while里用"<=“。 如果左闭右开或左开右闭,while里用”<".
左闭右开时,mid = (left + right) / 2;
左开右闭时,mid = (left + right + 1) / 2;
哪个边界时闭区间,则后面更改值的地方必须+1。即:[left,right] 则 left = mid + 1, right = mid - 1。
[left,right) 则left = mid + 1, right = mid.
二分详解
如果左闭右闭,while里用"<=“。 如果左闭右开或左开右闭,while里用”<".
左闭右开时,mid = (left + right) / 2;
左开右闭时,mid = (left + right + 1) / 2;
哪个边界时闭区间,则后面更改值的地方必须+1。即:[left,right] 则 left = mid + 1, right = mid - 1。
[left,right) 则left = mid + 1, right = mid.
二分详解