題目描述
給定一個nums
整數陣列和一個val
整數,用原地(in-place)的方式移除其中所有值為的val
元素。元素的相對位置可能會改變。
由於在某些程式語言中,更改陣列的長度是做不到的,您必須讓結果放置在nums
陣列的前端。更準確地說,如果處理之後剩下k
個元素,nums
陣列的前k
個元素就是最終結果,不會去管第k
個元素之後的內容。
nums
陣列的前k
個元素為最終結果,k
這個數值需被回傳。
不要配置額外的陣列空間,您必須在空間複雜度為#{{ O(1) }}#的條件下修改輸入的陣列。
原題網址
輸入格式
0 <= nums.length <= 100
0 <= nums[i] <= 50
0 <= val <= 100
輸出格式
回傳k
,處理原來的nums
陣列。
範例輸入
nums = [3, 2, 2, 3]
val = 3
val = 3
範例輸出
2, nums = [2, 2, _, _]
題解
為了減少元素在移除之後往前移動的次數,要從陣列尾端走訪到陣列前端來移除指定的元素。