[Leetcode] 27. Remove Element (移除元素) 題解紀錄

[Leetcode] 27. Remove Element (移除元素) 題解紀錄

題目:

Remove element (移除元素)

難度:

簡單

題目要求:

題目給定一個數組和一個值,刪除數組中和題目給定相同的值,並返回移除數組後的新長度

解題思路:

這一題我看到leetcode很多雙指針的解法,但其實這一題不用到雙指針也可以解決

我解決這題的思路其實就是 26. Remove Duplicates from Sorted Array (刪除有序數組中的重複項) 中的方法,只是雙指針變成了單指針,因為題目已經給定比對的值了

  1. 設置邊界條件:
    這一題主要也是要設置好邊界條件,避免溢出,邊界條件就是 (當前指針的位置 < 數組長度)
  2. 指針前進的思路:
    這題指針需要前進的狀況只有 (當前的值 !=目標值),只要 (當前的值 ==目標值),就把當前值原地刪除,後面的值就會遞補到當前指針的位置,再進行下一回合的比對,所以指針不必前進
  3. 最後返回數組的總長度

這題的時間複雜度為 O(n),空間複雜度為 O(1)