思路1
这个思路和官方的思路1一样,能够使原来的数组保留元素的相对位置不变。
但是题目的要求是保留元素的相对位置可以改变。所以可以用更高效的方法。
缺点
思路2
代码
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
// int len = nums.size();
// int j = 0;
// for(int i = 0 ; i < len ; i++){
// if(nums[i] != val){
// nums[j] = nums[i];
// j++;
// }
// }
// return j;
//优化双指针
int len = nums.size();
int left = 0;
int right = len - 1;
while(left <= right){
if(nums[right] == val){
right--;
continue;
}
if(nums[left] == val){
nums[left] = nums[right];
right--;
}
left++;
}
return left;
}
};