基本代码
写法1
1 | int B_search(const vector<int> &v , int target){ |
写法2
1 | int B_search(const vector<int> &v , int target){ |
查找 <= target 的最大位置
- 当target在序列中时,返回序列中最后出现target的位置
- 当target不在序列中,但是在序列的范围内时,返回比target的最大位置
- 当target比序列中任何元素都小时,返回-1
- 当target比序列中任何元素都大师,返回最后一个元素的位置
写法1
1 | int right_bound(const vector<int> &v , int target){ |
写法2
1 | int right_bound(const vector<int> &v , int target){ |
查找 < target 的个数
其实也可以用来求< target的最小位置
写法1
1 | int left_bound(const vector<int> &v , int target){ |
写法2
1 | int left_bound(const vector<int> &v , int target){ |
查找 < target 的最大位置,==target的最小位置
- 当target在序列中时,返回序列中第一次出现target的位置
- 当target不在序列中,但是在序列的范围内时,返回比target的最大位置
- 当target比序列中任何元素都小时,返回-1
- 当target比序列中任何元素都大时,返回最后一个元素的位置
写法1
1 | int left_bound(const vector<int> &v , int target){ |
写法2
1 | int left_bound(const vector<int> &v , int target){ |
