題目描述

給定一個nums整數陣列和一個val整數,用原地(in-place)的方式移除其中所有值為的val元素。元素的相對位置可能會改變。



由於在某些程式語言中,更改陣列的長度是做不到的,您必須讓結果放置在nums陣列的前端。更準確地說,如果處理之後剩下k個元素,nums陣列的前k個元素就是最終結果,不會去管第k個元素之後的內容。

nums陣列的前k個元素為最終結果,k這個數值需被回傳。

不要配置額外的陣列空間,您必須在空間複雜度為#{{ O(1) }}#的條件下修改輸入的陣列。

原題網址

https://leetcode.com/problems/remove-element/

輸入格式

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100

輸出格式

回傳k,處理原來的nums陣列。

範例輸入

nums = [3, 2, 2, 3]
val = 3

範例輸出

2, nums = [2, 2, _, _]

題解

為了減少元素在移除之後往前移動的次數,要從陣列尾端走訪到陣列前端來移除指定的元素。

參考答案