代码随想录 力扣练习 Day1
数组的理论基础
- 数组是存放在连续内存空间上的相同类型数据的集合。
- 数组下标都是从0开始的,数组内存空间的地址是连续的
- 数组支持随机访问
- 向数组中插入或删除元素会导致内部元素的重新移动
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0;
int right = nums.size()-1;
while(left <= right)
{
int idx = left + (right - left) / 2;
if(nums[idx] == target)
return idx;
if(nums[idx] > target)
right = idx - 1;
else
left = idx + 1;
}
return -1;
}
};
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int left = 0;
int right = nums.size()-1;
while(left <= right)
{
if(nums[left] == val)
{
nums[left] = nums[right];
nums[right] = val;
--right;
continue;
}
++left;
}
return right + 1;
}
};