【面试题解答】一个有序数组 nums ,原地删除重复出现的元素

news2024/12/29 10:16:44

面试题解答

仅供学习


文章目录

  • 面试题解答
  • 题目
  • 一、python代码
    • 1.1 代码
    • 1.2 示例用法
      • 1.2.1 示例1
      • 1.2.2 示例2
  • 二、讲解
    • 2.1 初始化
    • 2.2 遍历
    • 2.3 返回


题目

在这里插入图片描述
要解决这个问题,可以使用双指针方法进行原地修改,以确保每个元素最多出现两次。


一、python代码

1.1 代码

def removeDuplicates(nums):
    if not nums:
        return 0

    # 指针 j 用于维护新数组的位置
    j = 0
    # 当前元素计数器
    count = 1

    # 遍历数组
    for i in range(1, len(nums)):
        # 如果当前元素与前一个元素相同,则增加计数
        if nums[i] == nums[i - 1]:
            count += 1
        else:
            count = 1  # 重置计数器

        # 只保留当前元素的前两次出现
        if count <= 2:
            nums[j] = nums[i]
            j += 1

    return j

1.2 示例用法

1.2.1 示例1

nums1 = [1, 1, 1, 2, 2, 3]
length1 = removeDuplicates(nums1)
print(length1) # 输出: 5
print(nums1[:length1]) # 输出: [1, 1, 2, 2, 3]

1.2.2 示例2

nums2 = [0, 0, 1, 1, 1, 1, 2, 3, 3]
length2 = removeDuplicates(nums2)
print(length2) # 输出: 7
print(nums2[:length2]) # 输出: [0, 0, 1, 1, 2, 3, 3]

二、讲解

2.1 初始化

  • j 指针用于跟踪新数组的位置。
  • count 计数器用于跟踪当前元素出现的次数。

2.2 遍历

  • 从第二个元素开始(i = 1),检查当前元素是否与前一个元素相同。
  • 如果相同,则 count 增加;否则,重置 count 为 1。
  • 如果 count 不超过 2,将当前元素放到 j 指向的位置,并移动 j 指针。

2.3 返回

  • 函数返回 j,即新数组的长度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件上传漏洞大总结:原理与复现

文章目录 原理f8x靶场安装文件上传漏洞前端验证概念步骤&#xff1a; 上传特殊可解析后缀概念步骤 ::$DATA绕过概念主要流类型 点空格绕过概念代码审计**步骤&#xff1a;** 文件类型检测概念常见的文件类型 过程 文件头检测概念过程 黑名单绕过概念特殊文件爆破常用的文件名过…

电商 API 接口的最佳实践与案例分析

在当今数字化的商业世界中&#xff0c;电商平台的发展日新月异&#xff0c;而 API 接口在其中扮演着至关重要的角色。通过合理地利用电商 API 接口&#xff0c;企业能够实现更高效的运营、更优质的用户体验以及更强大的业务拓展能力。本文将深入探讨电商 API 接口的最佳实践&am…

开源AI智能名片O2O商城微信小程序:利用超级赠品与厌恶损失心理促进行动转化的策略研究

摘要&#xff1a;在数字化转型的浪潮中&#xff0c;企业如何利用创新技术提升顾客转化率成为了关键议题。开源AI智能名片O2O商城微信小程序作为新兴营销工具&#xff0c;凭借其智能化、便捷性和个性化服务&#xff0c;为企业开辟了新的营销路径。本文聚焦于如何通过超级赠品与厌…

QQ 腾讯官方机器人搭建(更新中)

前言 QQ机器人通过开放的平台承载机器人的定制化功能&#xff0c;让开发者获得更畅快的开发体验。 以下是接入流程&#xff1a; 本文提供QQ机器人使用指南。 文章目录 前言开发前准备工作使用机器人控制台配置gpt—API获取本地公网ip配置机器人 开发前准备工作 首先前往Q…

高效可靠安全的大文件传输系统,了解一下

在数字化转型的浪潮中&#xff0c;数据已成为企业不可或缺的宝贵资源&#xff0c;而高效的文件传输机制则是保障数据流通的基石。无论是企业还是个人&#xff0c;经常需要处理大文件、远距离文件的传输任务&#xff0c;需要文件传输系统来处理。 在远距离传输大型文件时&#x…

一个简洁、高效、可扩展的企业级低代码开发平台,前后端分离,支持国密加密(附源码)

前言 在当今数字化转型的浪潮中&#xff0c;企业面临着快速开发和部署应用的挑战。传统的开发模式往往因为其繁琐的流程、高昂的成-本和僵化的架构而无法满足市场需求。开发者常常受限于复杂的系统配置、安全问题、以及不同数据库的兼容性问题。这些痛点不仅拖慢了开发进度&am…

字符串并查集:1061. 按字典序排列最小的等效字符串和990. 等式方程的可满足性

文章目录 题目一&#xff1a;1061. 按字典序排列最小的等效字符串题目二&#xff1a;990. 等式方程的可满足性 题目一&#xff1a;1061. 按字典序排列最小的等效字符串 1061. 按字典序排列最小的等效字符串 并查集使用整数&#xff0c;字符自然和整数有一个映射&#xff0c;A…

手把手教你用家用电脑完成图片生成卡通动漫风格

一. 效果图 二.animegan2-pytorch 介绍 animegan2-pytorch 是可以将图片转成卡通动漫形式的一个工程。 首先感谢作者开源&#xff0c;respect&#xff01;respect&#xff01;respect&#xff01; animegan2-pytorch地址&#xff1a;bryandlee/animegan2-pytorch: PyTorch impl…

【云原生】Kubernetes中关于污点、亲和性和容忍度的详细用法教程与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

在峡江的转弯处:陈行甲人生笔记 读书笔记

书籍信息 在峡江的转弯处&#xff1a;陈行甲人生笔记 书名&#xff1a; 在峡江的转弯处&#xff1a;陈行甲人生笔记作者&#xff1a; 陈行甲简介&#xff1a; 《在峡江的转弯处&#xff1a;陈行甲人生笔记》是陈行甲的自传体随笔&#xff0c;从童年岁月写起&#xff0c;写母亲…

html+css+js hover流光效果按钮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 文…

记录某次“有趣的“挖矿木马排查

挖矿木马是什么&#xff1f; 挖矿木马是一种恶意软件&#xff0c;它在用户不知情或未经同意的情况下&#xff0c;利用受害者的计算机资源进行加密货币挖矿。这类软件通过执行大量运算来挖掘数字货币&#xff0c;如比特币或门罗币等。挖矿木马通常通过漏洞利用、弱口令爆破或非…

探索电商 API 接口的创新应用与接入技巧

在当今数字化的商业环境中&#xff0c;电商 API 接口已成为推动业务增长和创新的关键因素。它们不仅为企业提供了与电商平台高效交互的途径&#xff0c;还开启了无数创新应用的可能性。本文将深入探讨电商 API 接口的创新应用&#xff0c;并分享一些实用的接入技巧&#xff0c;…

python---为某个项目使用虚拟环境

目录 为什么要为项目建立虚拟环境建立步骤打开终端&#xff08;Terminal&#xff09;进入项目文件夹所在目录该目录下创建虚拟环境激活新建的虚拟环境安装本项目所需要的库 过程完整截图未来再次使用本虚拟环境先导航到项目目录然后激活虚拟环境 为什么要为项目建立虚拟环境 为…

Excel 通过函数实现数据透视表

函数技巧演示系列。深入介绍 Excel 函数的使用技巧。 本篇通过函数的方式&#xff0c;实现数据透视表&#xff0c;部分函数需要 Office 2021版本或者 Office 365 版。 示例数据 要求&#xff1a;基于产品名称&#xff08;E列&#xff09;和销售渠道&#xff08;G列&#xff09…

代码随想录——买卖股票最佳时机Ⅲ(Leetcode 123)

题目链接 动态规划 动态规划思路&#xff1a; 确定dp数组以及下标的含义 一天一共就有五个状态&#xff0c; 没有操作 &#xff08;其实我们也可以不设置这个状态&#xff09;第一次持有股票第一次不持有股票第二次持有股票第二次不持有股票 dp[i][j]中 i表示第i天&#xf…

医院综合绩效核算系统,绩效核算系统源码,采用springboot+avue+MySQL技术开发,可适应医院多种绩效核算方式。

一、系统概述 作为医院用综合绩效核算系统&#xff0c;系统需要和his系统进行对接&#xff0c;按照设定周期&#xff0c;从his系统获取医院科室和医生、护士、其他人员工作量&#xff0c;对没有录入信息化系统的工作量&#xff0c;绩效考核系统设有手工录入功能&#xff08;可…

论文速递|Management Science 6月文章合集

编者按&#xff1a; 在本系列文章中&#xff0c;我们梳理了运筹学顶刊MSOM在2024年6月份发布的7篇文章的基本信息&#xff0c;旨在帮助读者快速洞察行业最新动态。 文章1 题目 Promotional Inventory Displays: An Empirical Analysis Using IoT Data促销库存展示&#xff1…

dubbo调用知多少?

一 dubbo超时时间的设置 定义&#xff1a;这里说的超时&#xff0c;是针对dubbo provider调用方来说的&#xff0c;比如提供方执行需要3秒&#xff0c;设置了超时时间1秒&#xff08;默认&#xff09;&#xff0c;则consumer调用方会报超时错误&#xff0c;但实际上服务提供方…

抖音短视频矩阵管理:就靠它,让运营更高效

在数字化时代&#xff0c;短视频已成为连接创作者与观众的重要桥梁。抖音作为全球领先的短视频平台&#xff0c;汇聚了海量的创作者和用户。然而&#xff0c;随着个人或品牌账号的增多&#xff0c;如何高效地管理这些抖音短视频矩阵&#xff0c;成为了一个亟待解决的问题。本文…