【leetcode】27.Remove Element (python)

题目描述
Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.
给定一个有序数组,直接在数组中删除重复的元素,返回新数组及其长度。

思路
设定两个指针,一个i:指向原数组,一个cur:指向新数组。
初始状态时,cur = 0,比较其与nums[1]是否相等,如果相等,继续比较其与nums[2]是否相等。直到出现一个不相等的值时,cur加一,且nums[cur] = nums[i],即在新数组中添加一个不重复的元素。

代码

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if not nums:
            return None
        cur = 0 #设定一个当前指针
        for i in range(1,len(nums)):
            if nums[i] != nums[cur]:
                cur += 1
                nums[cur] = nums[i]
        return cur +1

猜你喜欢

转载自blog.csdn.net/qq_42011358/article/details/83474938