问题描述:
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.
思路:
这道题开始理解错了,以为是要将数组中的元素去除,结果在上面浪费了很多时间,最后看到有人用覆盖的方法,所以就采用了,代码简单,容易理解。只要遇到和给定值不同的数,存入新的索引。
C++代码:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int len = 0;
for(int i = 0;i < nums.size();++i){
if(nums[i] != val){
nums[len++] = nums[i];
}
}
return len;
}
};