代码随想录刷题打卡:Day1,二分查找+移除数组
二分查找:
先要确定数组长度和数组单个元素内容,再给数组元素赋值或者直接在定义时初始化。未初始化数组内会是给定内存内值。
数组一般和for循环一起用得比较多,和for循环一起用时用变量i对应数组下标去访问数组元素。
class Solution {
public:
int search(vector<int>& nums, int target) {
size_t l = 0,r = nums.size()-1;
if(nums[l]>target||nums[r]<target) return -1;
while(l<=r){
size_t tmp = (l+r)/2;
if(nums[tmp] > target){
r = tmp-1;
}
else if(nums[tmp]<target){
l = tmp+1;
}
else{
return tmp;
}
}
return -1;
}
};
移除数组:直接暴力求解做的
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int size = nums.size();
for(int i = 0;i<size;i++){
if(nums[i] == val){
for(int j = i+1;j<size;j++){
nums[j-1] = nums[j];
}
i--;
size--;
}
}
return size;
}
};