""" 給你一個數組nums和一個值 val,你需要原地移除所有數值等於val 的元素,並返回移除後數組的新長度。 不要使用額外的數組空間,你必須僅使用 O(1)額外空間並原地修改輸入數組。 元素的順序可以改變。你不需要考慮數組中超出新長度後面的元素。 """
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
i = 0
while i<len(nums):
if nums[i] == val:# 刪除該元素後,後面的元素會自動補位,所以後續位置依舊不變
del nums[i]
else:
i += 1 # 不等於val自動往後掃描
return nums
nums = [0,1,2,2,3,0,4,2]
val = 2
S = Solution()
result = S.removeElement(nums,val)
print(result)