思路:通过定义快慢指针实现在一个for循环中实现元素的移除。快慢指针初始值都为0,for循环通过快指针进行遍历,慢指针指向新数组(在原数组中逆置)中元素的下标,当我们的快指针跟需要删除的val值不相等时候,将快指针所在数组元素赋值到慢指针所指位置,慢指针向后移动。否则继续移动快指针。
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
if(nums.size()==0)
return 0;
int slow = 0;
int fast = 0;
for(fast = 0;fast<nums.size();fast++)
{
if(nums[fast]!=val)
{
nums[slow++] = nums[fast];
}
}
return slow;
}
};