二分查找
二分查找
二分查找可以分为查找一个目标值target是否存在和查找一个连续递增的数组中存在着多个相同target的最左边界或者最右边界。
二分查找是否存在target模板
下面这个模板中的输入数组是一个递增数组:
1 | boolean binarySearch(int[] arr,int tar){ |
若果索引是负数的为了防止溢出mid可以使用mid=left+(right-left)/2。
二分查找最左侧的target模板
如果一个递增数组中存在着连续的target而我们需要查找这个数组中最左侧的target的下标:
1 | int ls(int[] nums,int tar){ |
二分查找最右侧target模板
如果一个递增数组中存在着连续的target而我们需要查找这个数组中最右的target的下标:
1 | int rs(int[] nums,int tar){ |
二分边界查找相关练习
- 剑指 Offer 53 - I. 在排序数组中查找数字 I
- LeetCode:1011. 在 D 天内送达包裹的能力(capacity-to-ship-packages-within-d-days)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 gmfan!