代码随想录算法训练营第一天 || (双指针)27.移除元素 26.删除有序数组中的重复项 283.移动零
27.移除元素
文档讲解:移除元素
视频讲解:数组中移除元素并不容易
状态:听完思路,自己成功实现代码
暴力方法
数组中移除元素是通过覆盖的方式进行的,而不是直接删除
本题,我们先采用暴力方法进行解答:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int n = nums.size();
for (int i = 0; i < n; i++) {
if (nums[i] == val) {
for (int j = i + 1; j < n; j++) {
nums[j - 1] = nums[j];
}
i--;
n--;
}
}
return n;
}
};
暴力方法时间复杂度是O(n^2),空间复杂度是O(1)
同向双指针双指针
就是用一层循环来解决暴力法两层循环
自己AC的解答
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int n = nums.size();
int fast, slow = 0;
for (fast = 0; fast < n; fast++) {
if (nums[fast] == val) {
continue;<