Leetcode - Remove Element
in Algorithm
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ
ํน์ ์์๋ฅผ ์ง์ฐ๋ ๋ฌธ์ ์ด๋ค. ์ด๊ฑด ์ฌ์ค Naive๋ฅผ ์๊ฐํ๋๊ฒ ๋ ์ด๋ ค์ด ๋ฌธ์ ์ด๋ค.
ํต์ฌ์ in-place
์์ ์ญ์ ๊ฐ ์ด๋ค์ ธ์ผ ํ๋ค. ๊ทธ๋ผ ๊ฒฐ๊ตญ ํฌ์ธํฐ๋ฅผ ์ธ ์ ๋ฐ์..
๐ฅฝ Solution
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
n = len(nums)
idx = 0
for i in range(n) :
if nums[i] != val:
nums[idx] = nums[i]
idx += 1
return idx
์ง์๋ ๋์ง ์์ ์์๋ผ๋ฉด ์์์๋ถํฐ ์ฑ์๋ฃ์ด์ค๋ค. ๊ทธ๊ฒ ์๋๋ผ๋ฉด ๊ทธ๋ฅ ๋ฌด์ํ๊ณ ๋์ด๊ฐ๋ฉด์ idx๋ฅผ ์ฑ์ ์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
๐ป Complexity
- Time : O(n)
- Space : O(1)