# 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