一、问题描述
Description: 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.
给一个数组与一个整数 value,删除数组中值等于value的元素,并返回新数组的长度。
注意:原地工作
二、解题报告
直接遍历就行了。
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
vector<int>::iterator beg = nums.begin();
for( ; beg!=nums.end(); ) {
if(*beg == val)
beg = nums.erase(beg);
else
++beg;
}
return nums.size();
}
};
注意erase()
的用法,它在删除迭代器后,会返回下一个元素的迭代器。
LeetCode答案源代码:https://github.com/SongLee24/LeetCode