欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【leetcode】27.Remove Element (python)

程序员文章站 2024-03-22 15:04:52
...

题目描述
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