Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn’t matter what you leave beyond the new length.
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
vector<int>::iterator iter;
int count = nums.size();
for(iter = nums.begin(); iter != nums.end(); )
{
if(*iter == val)
{
iter = nums.erase(iter); //返回被删除元素的下一个元素
count--;
continue;
}
iter++;
}
return count;
}
};

本文介绍了一个使用C++实现的算法,用于移除数组中特定值的所有实例,并直接修改原数组,同时返回新的有效长度。通过迭代遍历数组并利用vector的erase函数,该算法能够在原地进行操作,避免了额外的空间开销。
98

被折叠的 条评论
为什么被折叠?



