继续刷LeetCode,第27题,去掉给定数组中的等于k的所有元素,并将剩余的返回。
分析:
这个题目和26题类似,通过将数组中每个元素与k进行比较,如果不相等就加入新的数组,相等就继续向后遍历。其中加入到新的数组中的第几个不同值就赋值给数组中第几个位置上,不能使用新的内存。最后统计与K不同的元素个数,并返回其值。
问题:
1、注意返回的值的含义,是数组中的前几个,而不是整个数组
附上代码:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int sum=0;
int n=nums.size();
for(int i=0;i<n;i++)
{
if(nums[i]!=val)
{
nums[sum]=nums[i];
sum++;
}
}
return sum;
}
};