方法:双指针
两个指针变量,一个用于遍历数组元素,另一个用于指向存放不相等元素的位置
C++实现:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
//先判断数组是否为空
if(nums.size()==0){
return 0;
}
//双指针法
int i=0,j; //变量i和j就表示双指针
for(j=0;j<nums.size();j++){
//从数组nums的第一个元素开始遍历,判断是否与val相等
if(nums[j]!=val){
nums[i++]=nums[j]; //用不相等的数覆盖前面相等的数,并让i指针后移一位
//i++;
}
}
return i;
}
};