LeetCode刷题笔记-704.二分查找
解题记录
我们定义target在一个左右都是关闭的区间,[left,right]文章来源地址https://www.toymoban.com/news/detail-507108.html
- while(left <= right) 这里使用<= 因为left == right 是有意义的
- int mid = left + ((right - left) / 2) 这么写是为了防止溢出 常用操作
- 当nums[mid] > target 将right = mid - 1因为target 不可能在mid处取到
- 当nums[mid] < target 将left = mid + 1
class Solution {
public int search(int[] nums, int target) {
// 二分查找的条件 有序无重复数组
int left = 0;
int right = nums.length - 1;
while(left <= right){
int mid = left + ((right - left) / 2);
if(nums[mid] > target){
// 更新有边界
right= mid - 1;// 右边界不可以取到
}else if(nums[mid] < target){
left = mid + 1;// 左边界更新
}else{
return mid;
}
}
// 查找不到 返回-1
return -1;
}
}
文章来源:https://www.toymoban.com/news/detail-507108.html
到了这里,关于LeetCode刷题笔记-704.二分查找的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!