力扣刷题 二分法 leetcode 刷题 27,26,283,844,977
作者:互联网
力扣刷题
二分法专题
二分法第一种写法
第一种写法,我们定义 target 是在一个在左闭右闭的区间里,也就是[left, right] (这个很重要非常重要)。
区间的定义这就决定了二分法的代码应该如何写,因为定义target在[left, right]区间,所以有如下两点:
- while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=
- if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[middle]一定不是target,那么接下来要查找的左区间结束下标位置就是 middle - 1
二分法的模板
left=0
right=n
while left<=right:
mid=left+(right-left)/2;严谨写法,防止溢出
if nums(mid)<target:
left=mid+1
if nums(mid)>targer:
right=mid-1
if nums(mid)==target:
return mid
标签:977,right,target,nums,mid,二分法,刷题,left 来源: https://www.cnblogs.com/someonezero/p/16328344.html