二分查找(LeetCode #704)
解题思路
基本的二分搜索
搜索区间为[left, right],所以终止条件为left<=right
为了防止溢出,使用mid = left + (right - left) / 2
代码
class Solution {
public int search(int[] nums
, int target
) {
int left
= 0;
int right
= nums
.length
- 1;
int mid
= 0;
while(left
<= right
) {
mid
= left
+ (right
- left
) / 2;
if(nums
[mid
] == target
)
return mid
;
else if(nums
[mid
] < target
)
left
= mid
+ 1;
else if(nums
[mid
] > target
)
right
= mid
- 1;
}
return -1;
}
}