【LeetCode】26. 删除排序数组中的重复项

题目描述(简单难度)

【LeetCode】26. 删除排序数组中的重复项_第1张图片
【LeetCode】26. 删除排序数组中的重复项_第2张图片

解题思路

【LeetCode】26. 删除排序数组中的重复项_第3张图片

python 代码

  1. 解法1
class Solution:
    def removeDuplicates(self, nums):
        count = 0
        n = len(nums)
        for i in range(1,n):
            if nums[i] != nums[i-1]:
                nums[i-count] = nums[i]
            else:
                count += 1
        return n-count
  1. 解法2:双指针
    第一个和第二个进行比较,如果不相等,就把i变成i+1,更新不重复的初始值。重复以上操作,把第二个和第三个进行比较
class Solution:
    def removeDuplicates(self, nums):
        i = 0
        for j in range(1,len(nums)):
            if nums[i] != nums[j]:
            	i += 1
            	nums[i] = nums[j]
        return i+1

s = Solution()
res,nums = s.removeDuplicates([0,0,1,1,1,2,2,3,3,4])
print('.....',res,nums)

【LeetCode】26. 删除排序数组中的重复项_第4张图片

你可能感兴趣的:(数据结构与算法)