LeetCode中删除数组元素

26,80 题是删除 有序数组 中的 重复项

对于此类问题,我们应该进行如下考虑:

  • 由于是保留 k 个相同数字,对于前 k 个数字,我们可以直接保留。
  • 对于后面的任意数字,能够保留的前提是:与当前写入的位置前面的第 k 个元素进行比较,不相同则保留

26. 删除有序数组中的重复项

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        i=0
        for num in nums:
            if i<1 or nums[i-1]!=num:
                nums[i]=num
                i+=1
        return i

80. 删除有序数组中的重复项 II

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        i=0
        for num in nums:
            if i<2 or nums[i-2]!=num:
                nums[i]=num
                i+=1
        return i

27 题是删除 无序数组 中的 指定元素

27. 移除元素

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        i=0
        for num in nums:
            if num!=val:
                nums[i]=num
                i+=1
        return i

猜你喜欢

转载自blog.csdn.net/hu_wei123/article/details/131891851