Solution 1:最简单的两个指针
和26题很像
class Solution {
public int removeElement(int[] nums, int val) {
int i=0;
int k=0;
while(i<nums.length){
if(nums[i]!=val){
nums[k]=nums[i];
k++;
}
i++;
}
return k;
}
}
Solution 2:看答案,发现数组的顺序可以变
每次用数组最后一个来代替要删的数
class Solution {
public int removeElement(int[] nums, int val) {
int i=0;
int n=nums.length;
while(i<n){
if(nums[i]==val){
nums[i]=nums[n-1];
n--;
}
else{
i++;
}
}
return n;
}
}