每日一题 0129
(2022.01.29)每日一题(代码随想录版 )二分查找及搜索插入位置:704,35
二分查找要注意边界条件,要严格遵循循环不变量原则。牢记,查找到了一定是满足循环条件退出,而没找到的话就具体分析咯。
只能说简单的算法也很牛啦,我真实弱鸡。
//搜索插入位置
//low其实就是最后要插入的位置。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int low = 0;
int high = nums.size()-1;
int mid = (low + high)>>1;
while(low <= high){
mid = (low + high)>>1;
if(nums[mid] < target){
low = mid + 1;
}else if(nums[mid] > target){
high = mid - 1;
}else{
return mid;
}
}
return low;
}
};
//二分查找
public:
int searchInsert(vector<int>& nums, int target) {
int low = 0;
int high = nums.size()-1;
int mid = (low + high)>>1;
while(low <= high){
mid = (low + high)>>1;
if(nums[mid] < target){
low = mid + 1;
}else if(nums[mid] > target){
high = mid - 1;
}else{
return mid;
}
}
return -1;
}
};

浙公网安备 33010602011771号