一般常见的有两种情况
1.左闭右闭
- 关键点
- 首先就是判断left能不能等于right,不同情况是不一样的
- 其次就是移动左右索引的时候是移到mid还是移到mid-1 or mid+1
class Solution {
public int search(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
int mid = (left + right) / 2;
while (left <= right) {
if (nums[mid] == target) {
return mid;
} else if (nums[mid] > target) {
right = mid - 1; //如果不减去1会报错
mid = (left + right) / 2;
} else {
left = mid + 1;
mid = (left + right) / 2;
}
}
return -1;
}
**}**
2.左闭右开