美文网首页
leetcode26. 删除排序数组中的重复项 python实现

leetcode26. 删除排序数组中的重复项 python实现

作者: vvblack4 | 来源:发表于2020-02-28 11:29 被阅读0次

题目:

leetcode26题目描述

解法1:

  • 遍历数组,当前位数值和前一位比较,如果相等,则删除改值,注意下标改变了,所以设置一个count,用于记录删除了多少个值。
    def removeDuplicates(self, nums: List[int]) -> int:
        if not nums:
            return 0
        
        temp = nums[0]
        count = 0
        for i in range(1,len(nums)):
            if temp == nums[i-count]:
                del nums[i-count]
                count += 1
            else:
                temp = nums[i-count]
        return len(nums)

解法2:

  • 双指针法,慢指针i和快指针j,当i和j所指的值不同时,将i指针右移一位,并将当前j所指的值赋值到当前i位。反之,如果i和j所指值相同时,j向右移动。
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if not nums:
            return 0
        i=0
        for j in range(1,len(nums)):
            if nums[i]!=nums[j]:
                i += 1
                nums[i]=nums[j]
        return i+1

相关文章

网友评论

      本文标题:leetcode26. 删除排序数组中的重复项 python实现

      本文链接:https://www.haomeiwen.com/subject/mlmkhhtx.html