题意:
删除数组中所有的val,返回删除后的长度。注意本题要求改变数组,就是把没没被删除的元素往前移,且顺序不变。
思路:
这次就不能unique了,要求顺序。但是2个指针的方法仍有效,一个指针遍历数组,一个表示答案长度,如果遇到一个数字不是val,就把它放进答案。
代码:
class Solution {
public:
int removeElement(vector<int> &nums, int val) {
int n = nums.size();
int m = 0;
for (int i = 0; i < n; ++i) {
if (nums[i] != val) {
nums[m++] = nums[i];
}
}
return m;
}
};