- 使用双指针 定义fast和slow指针
- 让fast在前首先判断 nums[fast] != val 若成立则说明此位置上的val不是要去除的val,则将此值赋值给slow,然后执行slow++
- if条件外执行fast++,含义是每次的if不管是否成立,都要执行fast++,只有当fast当前位置的val不是要去除的val时,才执行slow++
class Solution {
public int removeElement(int[] nums, int val) {
int len = nums.length;
int fast = 0;
int slow = 0;
while(fast < len){
if(nums[fast] != val){
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
}