給你一個數組 nums 和一個值 val,你需要 原地 移除所有數值等于 val 的元素,并返回移除后數組的新長度。
不要使用額外的數組空間,你必須僅使用 O(1) 額外空間并 原地 修改輸入數組。
元素的順序可以改變。你不需要考慮數組中超出新長度后面的元素。
我的思路,雙指針,快指針fast尋找不為val的元素,慢指針slow存儲他們并重新排列數組
class Solution {public int removeElement(int[] nums, int val) {int slow = -1;for(int fast = 0;fast<nums.length;fast++){if(nums[fast]!=val)nums[++slow] = nums[fast];}return ++slow;}
}