Bin search
This commit is contained in:
37
src/s0704_binary_search.cpp
Normal file
37
src/s0704_binary_search.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
#include "s0704_binary_search.hpp"
|
||||
|
||||
// 闭区间写法
|
||||
int Solution1::binSearch(vector<int>& nums, int target) {
|
||||
int len = nums.size();
|
||||
int l{0};
|
||||
int r = len - 1;
|
||||
while (l <= r) {
|
||||
int m = (l + r) >> 1;
|
||||
if (target < nums[m]) {
|
||||
r = m - 1;
|
||||
} else if (nums[m] < target) {
|
||||
l = m + 1;
|
||||
} else {
|
||||
return m;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// 开区间写法
|
||||
int Solution2::binSearch(vector<int>& nums, int target) {
|
||||
int len = nums.size();
|
||||
int l{0};
|
||||
int r = len;
|
||||
while (l < r) {
|
||||
int m = (l + r) >> 1;
|
||||
if (target < nums[m]) {
|
||||
r = m;
|
||||
} else if (nums[m] < target) {
|
||||
l = m + 1;
|
||||
} else {
|
||||
return m;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
Reference in New Issue
Block a user