Leetcode-27.移除元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

解法:双指针

i指针遍历数组,len指针表示当前有多少位值不等于val的元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int n=nums.size();
int len=0;
int i;
for(i=0;i<n;i++)
{
if(nums[i]!=val)
{
nums[len]=nums[i];
len++;
}
}
return len;
}
};