26. Remove Duplicates from Sorted Array

给定一个排序好的数组,将其中重复的元素删除掉

思路: 双指针法,后面的指针只有在前边的指针遇到了新的数值时才向前移动

Python:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lass Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# 5 star
if not nums:
return 0
j = 0
for i in range(len(nums)):
if nums[i] != nums[j]:
nums[j+1], nums[i] = nums[i], nums[j+1]
j += 1
return j + 1

Go:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func removeDuplicates(nums []int) int {
fast, slow := 1, 1
length := len(nums)
for fast < length {
if nums[fast] == nums[fast-1] {
fast++
} else {
nums[slow] = nums[fast]
slow++
fast++
}
}
return slow

}