思路:
题目需要在原数组的基础上,移除等于val的元素,并返回数组移除后的元素数
用双指针遍历,for循环遍历,fast先行
如果当前元素等于val,fast自增是写在for循环中的,slow不变
如果不等,fast ,slow同时移动
/*
* @lc app=leetcode.cn id=27 lang=cpp
*
* [27] 移除元素
*/
// @lc code=start
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
//判空
if(nums.size() == 0) return 0;
//双指针
int fast = 0;
int slow = 0;
for(fast= 0;fast<nums.size();fast++)
{
if(nums[fast]!= val)
{//把fast位置的元素复制到slow处,slow再自增
nums[slow++] = nums[fast];
}
}
return slow;
}
};
// @lc code=end