26. 删除排序数组中的重复项
-
解:
因为数组本身是有序,所以可以使用快慢指针。
用快指针寻找与慢指针所指位置中值不同的项,并将其取出放到慢指针指向位置的后一个位置中。然后继续向下寻找。
- Python3
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if len(nums) == 0: return 0
i = 0
for j in range(1, len(nums)):
if nums[j] != nums[i]:
i+=1
nums[i] = nums[j]
return i + 1
- Go
func removeDuplicates(nums []int) int {
if len(nums) == 0 {
return 0
}
i := 0
for j := 1; j<len(nums); j++ {
if nums[j] != nums[i]{
i++
nums[i] = nums[j]
}
}
return i + 1
}