移除元素
题目链接
解题思路
ans为左指针
循环遍历为右指针
右指针开始遍历整个列表,如果指针所指的元素与val值不等,那么这个元素不能被删除,将其放入到左指针索引处。
因为return的是列表的长度,ans恰好也是删除完元素后列表的长度,至此原列表后部分的元素是不会被访问到的
class Solution {
public:int removeElement(vector<int>& nums, int val) {int ans = 0;for(int i = 0;i<nums.size();i++){if(nums[i] != val){nums[ans++] = nums[i];}}return ans;}
};