文章目录
1. 什么时候可以使用二分
- 经常见到的类型是在一个有序数组上,开展二分搜索 但有序真的是所有问题求解时使用二分的必要条件吗? 只要能正确构建左右两侧的淘汰逻辑,你就可以二分。
2. 二分法的练习
- 题目: 局部最小
public static int getLessIndex(int[] arr) {
if (arr == null || arr.length == 0) {
return -1; // no exist
}
if (arr.length == 1 || arr[0] < arr[1]) {
return 0;
}
if (arr[arr.length - 1] < arr[arr.length - 2]) {
return arr.length - 1;
}
int left = 1;
int right = arr.length - 2;
int mid = 0;
while (left < right) {
mid = (left + right) /