给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
class Solution {
public int removeElement(int[] nums, int val) {
// int size=nums.length;
// for(int i=0;i<nums.length;i++){
// if(nums[i]==val){
// for(int j=i+1;j<nums.length;j++){
// nums[j-1]=nums[j];
// }
// i--;
// size--;
// }
// }
// return size;
int slow=0;//双指针,以原来的数组为空间,找出不等于val的值塞进去
for(int i=0;i<nums.length;i++){
if(nums[i]!=val){
nums[slow]=nums[i];//有塞进去的味道了
slow++;//最后一次加1也把数组的长度加进去了
}
}
return slow;
}
}