美文网首页
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