昨天試寫了一段,測試後的結果和預期完全不同,加上print查也沒找到出問題的地方
所以今天決定先來研究下別人的解法
下面是我在參考1連結裡找到的解法
def removeDuplicates(self, nums):
if len(nums) <= 1:
return len(nums)
s = 0
for f in range(1, len(nums)):
if nums[s] != nums[f]:
s += 1
nums[s] = nums[f]
return s + 1
連結裡有解釋他的想法,是把第一次出現的數字往前移動
例如測試個案輸入[1,1,2],在這邊就會變成[1,2,2],因為輸出只會輸出到第1個位置,會變成[1,2]
像這樣:
測試個案輸入變成[0,0,1,1,1,2,2,3,3,4]的話,就會變成這樣:
這個做法也符合了題目開頭提到"不能使用額外的空間"的部份
參考1LeetCode专题-Python实现之第26题:Remove Duplicates from Sorted Array