




/*** 小于索引的最大值** @param data* @param target* @param <E>* @return*/public static <E extends Comparable<E>> int lower(E[] data, E target) {int l = -1, r = data.length - 1;while (l < r) {// mid向上取整 避免相邻情况下的问题int mid = l + (r - l + 1) / 2;if (data[mid].compareTo(target) <= 0) {l = mid;} else {r = mid - 1;}}return l;}
