<aside> 💡
知识点:数组中的元素不能删除,只能覆盖
</aside>
<aside> 💡
快慢指针:
双指针法(快慢指针法)
// 双指针解法,时间复杂度O(n),空间复杂度O(1)
int removeElement(vector<int>& nums, int val) {
int fast = 0; // 快指针负责向前遍历
int slow = 0; // 慢指针负责维护更新
while (fast < nums.size()) {
// 不需要“删除”的值使用slow进行更新
if (nums[fast] != val) {
nums[slow] = nums[fast];
++fast;
++slow;
}
// 需要“删除”的值直接忽略(没看到就是不存在:D)
else {
++fast;
}
}
return slow;
}