题目大概意思是剔除nums数组中出现的所有val值。可以用快慢双指针法来做。
快的指针在前面遍历找值不为val的元素的下标,慢的负责接收值不为val的元素,并及时更新数组。
class Solution {
public int removeElement(int[] nums, int val) {
//快慢指针法
int fast = 0;
int slow = 0;
int len = nums.length;
while(fast < len) {
if(nums[fast] != val) {
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
}