leetcode 26. Remove Duplicates from Sorted Array
LeetCode 26. Remove Duplicates from Sorted Array
題目描述
將一個已經排序好的list中重複的數字刪去,並回傳list長度,必須以in-place的方式處理,不能使用額外的空間
解題思路
使用兩個指針,一個紀錄都沒重複的次數(slow),一個紀錄當前沒重複的數字(fast),如果重複,則更新沒重複的數字
Python
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
n = len(nums)
if n < 2:
return n
slow, fast = 1, 1
for fast in range(1,n):
if nums[fast-1] != nums[fast]:
nums[slow] = nums[fast]
slow += 1
return slow
Golang
func removeDuplicates(nums []int) int {
n := len(nums)
if n < 2 {
return n
}
slow, fast := 1, 1
for fast < n {
if nums[fast-1] != nums[fast] {
nums[slow] = nums[fast]
slow++
}
fast++
}
return slow
}