二分查找推荐文章
简单二分
1.需要特判
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int len = nums.size();
if (nums[len - 1] < target) return len;
int l = 0, r = len - 1;
while (l < r) {
int mid = (r - l) / 2 + l;
if (nums[mid] < target)
l = mid + 1;
else
r = mid;
}
return l;
}
};
2.不需特判
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l = 0, r = nums.size();
while (l < r) {
int mid = (r - l) / 2 + l;
if (nums[mid] < target)
l = mid + 1;
else {
r = mid;
}
}
return l;
}
};