class Solution {
public int removeElement(int[] nums, int val) {
int j = 0;
for(int i=0;i<nums.length;i++) {
if(nums[i] != val) {
nums[j++] = nums[i];
}
}
return j;
}
}
第二种解法
对双指针进行优化
题目说元素顺序可以改变
即对此进行处理,右指针的值与 val 相同的话,则右指针减一
不同的话,将其复制到左指针处,然后左指针进行加一
class Solution {
public int removeElement(int[] nums, int val) {
int left = 0;
int right = nums.length;
while(left<right) {
if(nums[left] == val) {
nums[left] = nums[right - 1];
right--;
}else {
left++;
}
}
return left;
}
}