博客
关于我
每日一题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/

    你可能感兴趣的文章
    nginx实现负载均衡
    查看>>
    Nginx实现负载均衡时常用的分配服务器策略
    查看>>
    Nginx实现限流
    查看>>
    Nginx将https重定向为http进行访问的配置(附Demo)
    查看>>
    Nginx屏蔽电脑端访问,但不限制蜘蛛爬取
    查看>>
    nginx工作笔记004---配置https_ssl证书_视频服务器接口等
    查看>>
    nginx工作笔记005---nginx配置负载均衡_在微服务中实现网关集群_实现TCP传输层协议__http协议的负载均衡
    查看>>
    nginx常用命令及简单配置
    查看>>
    Nginx常用屏蔽规则,让网站更安全
    查看>>
    Nginx常见问题
    查看>>
    nginx平滑升级解决 nginx 安全漏洞(CVE-2021-23017)和NGINX 环境问题漏洞(CVE-2019-20372)
    查看>>
    Nginx平滑添加模块
    查看>>
    Nginx开启gzip网页传输压缩配置
    查看>>
    nginx开机启动脚本
    查看>>
    nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
    查看>>
    nginx总结及使用Docker创建nginx教程
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
    查看>>
    Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览
    查看>>
    Nginx搭建静态资源映射实现远程访问服务器上的图片资源
    查看>>