leetcode二分查找刷题总结
二分查找两个基本原则
每次都要缩减搜索区域;
每次缩减不能排除潜在答案。
1、寻找恰好符合条件的
left <= right;
left = mid + 1;
right = mid - 1;
e.g. 704
2、寻找符合条件最左端的(最小的那个)
left < right;
left = mid + 1;
right = mid;
e.g. 410、1011
3、寻找符合条件最右端的(最大的那个)
left < right;
left = mid;
right = mid - 1;
**注意**:此种情况下mid = left + (right - left + 1) / 2 (否则会陷入死循环)
e.g. 1292