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

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

 

寻找左侧边界的二分查找 

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

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

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

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第3张图片

   

   

寻找右侧边界的二分查找

   
二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第4张图片 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第5张图片

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

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

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第6张图片

 

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

二分查找 查找左侧边界 查找右侧边界
二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第7张图片 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第8张图片 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第9张图片
  二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第10张图片 二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第11张图片

 

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

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

1. target+0.5 -0.5 左右都可

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第12张图片

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

   二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第13张图片  二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第14张图片

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

2. target target-1   只能是右边

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第15张图片

二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第16张图片二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I_第17张图片

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

你可能感兴趣的:(LeetCode,二分法,leetcode)