题目解析:给定一个vector<int>数组,要求把不等于给定的val的若干个数字移动到该数组的最前面,并返回不等于val的数字的数目。不允许另外定义数组来运算。
我做的答案:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int i=0,j=0;
if(nums.empty())
return 0;
while(j<nums.size()){
if(nums[j]!=val)
nums[i++] = nums[j];
j++;
}
return i;
}
};
这道题和26题是一样的,首先判断是否为空数组,不是空数组的话就利用while循环来遍历数组,把不等于val的数字移动到最前面。