本博客参考 二分查找规律, 进行总结及归纳 方便记忆

 

寻找左侧边界的二分查找 

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I
返回left和right其实都一样,因为循环终止条件为left==right

while 的退出条件是 left == right + 1,所以当 target 比 nums 中所有元素都大时,

会存在以下情况使得索引越界:

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

   

   

寻找右侧边界的二分查找

   
二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

while 循环的终止条件是 left == right,所以 left 和 right 是一样的,

你非要体现右侧的特点,返回 right - 1 好了

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

 

两端都闭的三种写法(不存在返回-1)

二分查找 查找左侧边界 查找右侧边界
二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I
  二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

 

剑指 Offer 53 - I. 在排序数组中查找数字 I 

两端都闭的写法(不存在也返回 返回的刚好是插入点的位置)

1. target+0.5 -0.5 左右都可

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

  最好返回left,因为left刚好是插入点

   二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I  二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

最后结果:7-3 = 4  所以4有4个

2. target target-1   只能是右边

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I

最后结果:6-2 = 4  所以4有4个

相关文章:

  • 2021-06-06
  • 2021-06-17
  • 2021-12-09
  • 2021-11-28
  • 2021-05-15
  • 2021-11-29
  • 2021-11-07
猜你喜欢
  • 2021-07-29
  • 2022-02-02
  • 2021-08-21
  • 2021-06-13
  • 2021-10-07
  • 2022-12-23
  • 2022-01-11
相关资源
相似解决方案