class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slowP=0;
int fastP;
for(fastP=0;fastP<nums.size();fastP++){
if(nums[fastP]!=val){
nums[slowP]=nums[fastP];
slowP++;
}
}
return slowP;
}
};
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int fastp=0;
int slowp=0;
for(fastp;fastp<nums.size();fastp++){
if(nums[fastp]!=0){
nums[slowp]=nums[fastp];
slowp++;
}
}//提取非0元素
for(int i=slowp;i<nums.size();i++){//非0数组 末尾添加0
nums[i]=0;
}
}
};
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int fastp;
int slowp=0;
int target;
int l = nums.size();
for(fastp=1;fastp<nums.size();fastp++){
if(nums[slowp]!=nums[fastp]){
slowp++;
nums[slowp]=nums[fastp];
}
}
return slowp+1;//可以对比LEECODE-27的返回值
}
};
①数组不能删除元素,只能覆盖
②快指针读元素,慢指针录入数组