目录
- 概述
- 算法模版
- 附录
概述
二分算法,原本只是用来在一个有序区间中查找某个值时使用,但是在真实场景中,它不是只有这一个作用。从更全面的角度来说,二分法能做到以下几点:
- 有序区间上查找某个值
- 有序区间上查找最左侧或者最右侧的值
- 无序区间的峰值
算法模版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Solution { public: int search(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; while (left <= right) { int middle = left + ((right - left) / 2); if (nums[middle] > target) { right = middle - 1; } else if (nums[middle] < target) { left = middle + 1; } else { return middle; } } return -1; } };
|
附录
我写了首诗,让你闭着眼睛也能写对二分搜索