1. 寻找特定target
- 如果
right = nums.length - 1,此时查找区间为两端都闭[left, right], 则while循环条件应为left <= right,即left > right时停止查找
1 | public int binarySearch(int[] nums, int target) { |
2. 寻找下界
nums[middle] == target时应该向下逼近,即right = middle - 1
1 | public int lowerBound(int[] nums, int target) { |
3. 寻找上界
nums[middle] == target时应该向上逼近,即left = middle - 1
1 | public int upperBound(int[] nums, int target) { |