博客
关于我
每日一题80-删除排序数组中的重复项 II
阅读量:731 次
发布时间:2019-03-21

本文共 901 字,大约阅读时间需要 3 分钟。

答案解题步骤

给定一个已排序的数组nums,目标是在原地删除重复元素,使得每个元素最多出现两次,同时返回修改后的数组长度。

方法思路

  • 问题分析:我们需要确保数组中的每个元素最多出现两次。如果有三个连续的相同元素,只保留前两个,第三个被删除。
  • 计数器设计:使用一个计数器count来跟踪当前元素的出现次数。初始值为1。
  • 遍历数组:遍历每个元素,检查当前元素与前一个元素的关系:
    • 如果当前元素等于前一个,说明重复,计数器加一。如果计数器超过两次,删除当前元素,并让索引移到前一个元素位置,恢复计数器。
    • 如果当前元素和前一个不同,重置计数器为1。
  • 原地修改数组:当需要删除元素时,直接删除,并相应调整索引,避免重复元素影响后续判断。
  • 优化后的算法步骤

  • 初始化索引和计数器i=1count=1
  • 遍历数组
    • 如果nums[i]等于nums[i-1],计数器加一。如果计数器超过2,删除nums[i],并减一索引。
    • 否则,计数器重置为1。然后继续遍历。
  • 返回新数组长度:处理完成后,返回数组长度。
  • 代码实现

    class Solution:    def removeDuplicates(self, nums: list[int]) -> int:        i, count = 1, 1        while i < len(nums):            if nums[i] == nums[i-1]:                count += 1                if count > 2:                    nums.pop(i)                    i -= 1            else:                count = 1            i += 1        return len(nums)

    解决思路总结

    通过在原地遍历数组并使用计数器来控制每个元素的出现次数,确保数组满足每个元素最多两次的条件。这种方法在时间复杂度上为O(n),空间复杂度为O(1),符合题目要求,且实现简洁高效。

    转载地址:http://idagz.baihongyu.com/

    你可能感兴趣的文章
    mysql -存储过程
    查看>>
    mysql /*! 50100 ... */ 条件编译
    查看>>
    mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
    查看>>
    mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
    查看>>
    mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
    查看>>
    mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
    查看>>
    MySQL 8.0 恢复孤立文件每表ibd文件
    查看>>
    MySQL 8.0开始Group by不再排序
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    multi swiper bug solution
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>
    MySQL binlog三种模式
    查看>>
    multi-angle cosine and sines
    查看>>
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    MySQL Cluster与MGR集群实战
    查看>>