前提:
- 整型数组
int[] array - 数据
int v
整数数组中寻找最后一个 <= v 的值的索引
当 array 中所有的值都大于 v 时,返回 -1。
// 先确定 while 方法,再由该方法中可能出现的异常情况确定 l 和 r
int l = 0, r = array.length;
int mid;
// 找到第一个 > v 的索引,再减 1 就是最后一个 <= v 的值的索引
// 这种 while 方法只能找第 “1” 个
while (l < r) {
mid = (l + r) / 2;
if (array[mid] <= v) {
l = mid + 1;
} else {
r = mid;
}
}
return l - 1;