26. Remove Duplicates From Sorted Array

種類 : array
難度 : easy
題目 : 26. Remove Duplicates From Sorted Array

思維邏輯

  1. 若列表中下一個位置與當前相同,刪除
  2. 在1.中直至最後會超出列表,若發生則跳出迴圈

解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def isRemove(nums):
conut = 0
for i in range(len(nums)):
if i+2 > len(nums):
break
while nums[i] == nums[i+1]: # 刪除重複
nums.remove(nums[i + 1])
conut += 1

for i in range(conut): # 增加 "_"
nums.append("_")
print(conut,", ",nums)

nums_1 = [1, 1, 2]
nums_2 = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]
nums_3 = [0, 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4]
nums_4 = [0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 4]
isRemove(nums_3)

難點

  1. 刪除重複數字時,列表總長變小,同時當前位置也回往前

最佳解法

1
2
3
4
5
6
7
8
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
j = 1
for i in range(1, len(nums)):
if nums[i] != nums[i - 1]:
nums[j] = nums[i]
j += 1
return j