C++
用迭代器迭代,当条件成立删除元素。
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
for(std::vector<int>::iterator it=nums.begin();it!=nums.end();){
if(*it==val){
it=nums.erase(it);
//vector删除时迭代器会失效,所以需要新迭代器来接收
}
else{
++it;
}
}
int len=nums.size();
return len;
}
};
Java
class Solution {
public int removeElement(int[] nums, int val) {
int n=0;
for(int i=0;i<nums.length;i++){
//当不是val时,就重新赋值,数组内就没有val,val都会被覆盖
if(nums[i]!=val){
nums[n]=nums[i];
n++;
}
}
return n;
}
}