zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):数组类:第80题:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

    题目:
    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。  不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 
    思路:
    思路较简单
    程序:
    class Solution:
        def removeDuplicates(self, nums: List[int]) -> int:
            length = len(nums)
            if length <= 2:
                return len(nums)
            counter = 0
            index = 1
            while index < len(nums):
                if nums[index - 1] == nums[index]:
                    counter += 1
                    if counter >= 2:
                        del nums[index]
                        index = index - 1
                else:
                    counter = 0
                index += 1
            return len(nums)
  • 相关阅读:
    返回一个随机数组中的子数组中的数相加最大的和
    四则运算二之结果
    四则运算二
    UVA 11741 Ignore the Blocks
    UVA 1408 Flight Control
    UVA 10572 Black & White
    CF1138D(545,div2) Camp Schedule
    UVA 1214 Manhattan Wiring
    UVA 11270 Tiling Dominoes
    BZOJ 3261 最大异或和
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12761277.html
Copyright © 2011-2022 走看看