Binary Search Java
来源:3-6 对撞指针 Two Sum II - Input Array is Sorted
Kabikabi
2020-07-11
波波老师 在 Leetcode# 167 Binarysearch Java的实现里, 让 j 遍历到 num.length-1J是因为我们闭区间的设定
但是 i < num.length-1, 为什么不像暴力解法 里 i < num.length ?这个怎末理解 是因为遍历到底的时候 j 已经在 num.length-1 的位置了吗 ? 所以 i 到 num.length-2 就行了, 这样理解可以吗 怎样理解才是正确的
***for(int i = 0 ; i < numbers.length - 1 ; i ++)***{
int j = binarySearch(numbers, i+1, numbers.length-1, target - numbers[i]);
if(j != -1){
int[] res = {i+1, j+1};
return res;
写回答
1回答
-
liuyubobobo
2020-07-11
因为 i 到达 num.length - 1 的时候,j 已经无法去任何值了。
其实,对于暴力解法,用 i < num.length-1 也是正确的。
对于二分搜索的解法,如果你是先的二分搜索考虑了搜索区间 [a, b] a 可能大于 b 的情况,使用 i < num.length 也是正确的。在 a > b 的时候直接返回 -1 了。
继续加油!:)
00
相似问题