学习目标:
代码随想录打卡1 二分查找和移除元素
学习内容:
二分查找:注意区间不变量 到底是左闭右开还是左闭右闭,保持一致。
移除元素:注意数组不能删除,只能覆盖,因为所存地址是连续的;双指针帮我们减少了一层循环
学习时间:
2022/10/26
学习产出:
左闭右闭
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0;
int right = nums.size()-1;
while(left<=right){
int mid=(left+right)/2;
if(nums[mid]==target) return mid;
else if(nums[mid]<target) left=mid+1;
else right=mid-1;
}
return -1;
}
};
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slowindex=0;
int fastindex=0;
for(fastindex;fastindex<nums.size();fastindex++){
if(nums[fastindex]!=val){
nums[slowindex]=nums[fastindex];
slowindex++;
}
}
return slowindex;
}
};