Neunomizuの日記

俺だけが俺だけじゃない

# LeetCode Easy 27. Remove Element

tags: leetcode

問題

イデア

「配列と値が与えられた時,新たにメモリを使わずに値と一致する全ての要素を取り除いてできる新たな配列の大きさを返せ」という問題です.

実装するだけ(?)です.

解法

  • どうやら内部だと(意味がわからないが)返した整数個分の配列を参照することになっているらしいです…
    • そのため,valと同じ整数の場合は末尾の要素と交換するのが良いらしいです(???)

計算量

配列の大きさを$N$をとします.

  • 時間計算量
    • $O(N)$
  • 空間計算量
    • $O(1)$

Python

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        start, end = 0, len(nums) - 1
        while start <= end:
            if nums[start] == val:
                nums[start], nums[end] = nums[end], nums[start]
                end -= 1
            else:
                start += 1
        return start