思路:
参考26题目双指针的思想,只不过这道题不是快慢指针。
看到示例里面数组是无序的,也就是说后面的元素也是可能跟给定 val值相等的,那么怎么处理呢。就想到了从前往后遍历,如果left对应的元素 == val时,就把最后一个元素挪过来,这样既缩短了数组长度,也解决了后面元素不好比较的问题。
是我自己想出来的噢,我好棒哈哈哈哈

代码
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int len = nums.size();
int left = 0;
int right = nums.size() - 1;
while(left <= right){
if(nums[left] == val){
nums[left] = nums[right];
right--;
len--;
}
else if(nums[left] != val){
left++;
}
else {
continue;
}
}
return len;
}
};


![com.alibaba.fastjson.JSONObject循环给同一对象赋值会出现“$ref“:“$[0]“现象问题](https://img-blog.csdnimg.cn/7a03b31634c345b4bfdbc101e6933dcf.png#pic_center)




![[OnWork.Tools]系列 05-系统工具](https://img-blog.csdnimg.cn/img_convert/5def12f1673050b7f1578257f9089a06.gif)










![[信号与系统系列] 正弦振幅调制之差拍信号](https://img-blog.csdnimg.cn/cbf5c716ca1c44c180143e276928d1a6.png)