注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
下面代码可以运行。谁能帮我把他变成 lo + 1 < hi 的答案?
感谢!!
顺便求一粒米!!!
- class Solution {
- public List<Integer> findClosestElements(int[] arr, int k, int x) {
- List<Integer> res = new ArrayList<>();
-
- int begin = 0, end = arr.length - k;
- /** 尝试找leftbound的值 */
- while (begin < end) {
- int mid = begin + (end - begin) / 2;
- if (x - arr[mid] > arr[mid + k] - x) {
-
- begin = mid + 1;
-
- } else {
-
- end = mid;
- }
- }
- int index = begin;
-
- while (k != 0) {
- res.add(arr[index++]);
- k--;
- }
- return res;
- }
-
- }
复制代码
|