1. 一般使用场景
- 有序
- 位置查找
2. 一般模板
public int getIndex(int[] nums, int target) {
int low = 0;
int high = nums.length - 1;
while (low <= high) {
int mid = low + (high - low)/2; // 防止溢出
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return low;
}
3. 注意项
int mid = low + (high - low)/2; // 防止溢出