[刷题] 删除有序数组中的重复项

news2024/12/25 15:35:49

系列文章目录

删除有序数组中的重复项


文章目录

  • 系列文章目录
    • 在这里插入图片描述
  • 前言
  • 1、题目
    • 1.2、判题标准
    • 1.3、示例
  • 2、解题
    • 2.1、双指针正向查找
    • 2.1、逆序删除
  • 3、总结

在这里插入图片描述

前言

数据结构在程序世界里非常重要,尤其大厂面试是必考项目,今天随机到[删除有序数组中的重复项]题目,我们用Java代码实现一下。

1、题目

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array

1.2、判题标准

系统会用下面的代码来测试你的题解:

int[] nums = [...]; // 输入数组
int[] expectedNums = [...]; // 长度正确的期望答案

int k = removeDuplicates(nums); // 调用

assert k == expectedNums.length;
for (int i = 0; i < k; i++) {
    assert nums[i] == expectedNums[i];
}

如果所有断言都通过,那么您的题解将被 通过。

1.3、示例

输入:nums = [1,1,2]
输出:2, nums = [1,2,_]
解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。

输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。

2、解题

2.1、双指针正向查找

时间复杂度是O(n),原地查找,没有消耗额外的空间。
在这里插入图片描述

2.1、逆序删除

此题可以衍生出Java里为何不能正向删除ArrayList集合里的数据。
通过逆向删除,可以保证集合里的索引/值不变,时间复杂度也是O(n)
在这里插入图片描述

3、总结

此文章通过双指针正向查找、逆序删除算法,删除了数组中的重复项,返回了不重复数的长度,这2种算法都没有占用额外的空间。

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

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

相关文章

“三步走”构建全链路数据能力,助力企业全面唤醒数据价值

01 企业数字化转型加速前进&#xff0c;数据价值唤醒仍面临多重挑战 数字经济蓬勃发展时代&#xff0c;数据已成为关键生产要素。随着国家政策对数据要素价值释放的方向引领&#xff0c;数据赋能企业经营决策、业务模式创新的需求不断强化&#xff0c;以及新兴技术工具的有效支…

[LeetCode 1401]圆和矩形是否有重叠

题目描述 给你一个以 (radius, xCenter, yCenter) 表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2) &#xff0c;其中 (x1, y1) 是矩形左下角的坐标&#xff0c;而 (x2, y2) 是右上角的坐标。 如果圆和矩形有重叠的部分&#xff0c;请你返回 true &#xff0c;否则返回 f…

音乐格式转换器mp3免费方法?分享四个实用的!

在日常工作和娱乐中&#xff0c;我们经常会遇到并使用MP3这种音频格式。它以小文件尺寸和优秀音质为特点&#xff0c;成为许多音频文件的首选格式。然而&#xff0c;当我们面对其他音频格式时&#xff0c;可能需要进行转换为MP3的操作。因此&#xff0c;接下来我将向您分享4种简…

篇章十一 Vuex

文章目录 一、理解 Vuex1. 是什么2. 什么时候用 二、Vuex 工作原理三、Vuex 环境搭建四、四个 map 方法的使用五、模块化 命名空间 一、理解 Vuex 1. 是什么 Vue 中实现集中式状态&#xff08;数据&#xff09;管理的一个 Vue 插件&#xff0c;对 vue 应用中多个组件的共享状…

蓝牙室内定位|蓝牙信标iBeacon部署原则

室内定位导航给我们的工作生活带来了诸多的便利&#xff0c;越来越多的企业愿意来SKYLAB了解室内定位方案&#xff0c;并根据自己的实际应用需求来选择米级蓝牙室内定位方案和厘米级UWB室内定位方案。今天SKYLAB君就来简单介绍一下蓝牙Beacon室内定位导航方案中Beacon的部署原则…

JAVA基础:线程池的使用

目录 1.概述 2.线程池的优势​​​​​​​ 2.1.线程池为什么使用自定义方式&#xff1f; 2.2.封装的线程池工具类有什么好处&#xff1f; 3.线程池的七大参数 3.线程池的创建 3.1. 固定数量的线程池 3.2. 带缓存的线程池 3.3. 执⾏定时任务 3.4. 定时任务单线程 3.…

掌握唯米系统ChatGPT批量生成文章的操作技巧

以下是重写后的操作步骤&#xff1a; 1. 购买会员并添加个人的ChatGPT密钥&#xff1a; 首先&#xff0c;您需要购买唯米系统的会员&#xff0c;并获得访问ChatGPT的权限。随后&#xff0c;您可以将个人的ChatGPT密钥添加到系统中&#xff0c;以便使用该功能进行自然语言生成和…

Spring Session使用

一.使用场景 前后端不分离的情况下&#xff0c;往登陆页auth.gulimall.com的session中存放一个用户信息&#xff0c;想要在首页gulimall.com中取出该数据并展示出来 GetMapping("/oauth2.0/gitee/success")public String oauth2(RequestParam("code") Str…

组态王与PLC通过RJ45口建立无线以太网通讯

本文以组态王和2台三菱FX5u PLC为例&#xff0c;介绍组态王与多台 PLC的无线以太网通信实现过程。在本方案中采用了三菱PLC无线通讯终端DTD419MB&#xff0c;作为实现无线通讯的硬件设备。 在这一无线以太网通讯系统的搭建中&#xff0c;用户无需更改网络参数和原有程序&#…

Ubuntu的USB相关操作

这里写目录标题 0.信息查看1. 串口设备设置2. 串口调试助手 0.信息查看 指令lsusb输出Bus 004 Device 002: ID 05e3:0620 Genesys Logic, Inc. USB3.2 Hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 006: ID 5986:115f Acer, Inc Integ…

佩戴最舒服的蓝牙耳机推荐,好用、佩戴体验很不错的蓝牙耳机分享

​面对市面上不同场景使用、不同类型的蓝牙耳机&#xff0c;我们选购蓝牙耳机时应该如何选&#xff1f;最怕遇到耳机延迟高、不防水防汗、音质表现差以及佩戴体验差的蓝牙耳机&#xff0c;针对这些经常面临的问题&#xff0c;我这次精选了四款市面上热销质量不错的蓝牙耳机分享…

PMP考试经验分享,准备不要超过三个月‼️

因为各种原因&#xff08;拖延、贪玩、上课 哈哈&#xff09; 我是用一个半月时间准备的PMP考试 3A通过 努力➕幸运的结果 资料准备&#xff1a; PMBOK第六版和第七版&#xff08;PMI官方教材&#xff09; 机构的视频材料&#xff08;巩固基础&#xff09; 模拟题库&#…

计算机原理基础一

内存 计算机数据存储&#xff0c;存储数据的基本单位是字节(Byte),常说的大b,1字节等于8位,8个bit(小b)。每个字节都对应一个内存地址&#xff0c;内存地址是从0开始编写的&#xff0c;然后自增排列&#xff0c;类似数组&#xff0c;C当中空类的大小是1个字节&#xff0c;就是…

JUC并发工具类--AQS

JUC并发工具类--AQS 管程 — Java同步的设计思想MESA模型 AQS&#xff08;AbstractQueuedSynchronizer&#xff1a;抽象队列同步器&#xff09;AQS简介AQS核心结构AQS内部维护属性state。state三种访问方式 两种资源访问方式AQS实现时主要实现的方法isHeldExclusively()tryAcqu…

安全应急产业新标兵, 前沿科技保安全

推广行业前沿技术 服务部队练兵备战 助力应急强国建设 科学应急 一馆一园一平台 安全应急项目推荐 海淀区安全应急产品展示交易中心 同赴时代之约&#xff0c;共创美好未来。 指导单位 2023年4月12日上午&#xff0c; “海淀区安全应急产品展示交易中心“揭牌启动仪式在中…

图像噪声和滤波

图像噪声 在图像采集、处理和传输过程中会受到噪声的影响。常见的图像噪声有椒盐噪声、高斯噪声等。 椒盐噪声 椒盐噪声也叫脉冲噪声&#xff0c;在图像中比较常见&#xff0c;表现为随机出现的噪点&#xff0c;比如在明亮区域中出现的黑色像素。参考下图的例子&#xff1a; 高…

【更改python版本】——日常记录

目录索引 卸载旧版本&#xff1a;提示&#xff1a;python launcher&#xff1a; 下载过程&#xff1a;配置pycharm&#xff1a;提示点&#xff1a;python console打不开的问题&#xff1a; 卸载旧版本&#xff1a; 要卸载 Python 3.7.7 在 Windows 上&#xff0c;请按照以下步骤…

接口测试持续集成

目录 一.在Windows系统上部署Jenkins1.下载Jenkins安装包2.启动Tomcat服务3.通过浏览器访问Jenkins 二.管理Jenkins中的插件1.安装插件2.更新插件3.卸载插件 三.创建项目四.配置项目运行频率 一.在Windows系统上部署Jenkins 1.下载Jenkins安装包 进入Jenkins官网&#xff0c;…

22-作用域链的理解

文章目录 作用域全局作用域函数作用域块级作用域二、词法作用域三、作用域链 作用域 &#x1f37f;&#x1f37f;&#x1f37f;作用域&#xff0c;即变量&#xff08;变量作用域又称上下文&#xff09;和函数生效&#xff08;能被访问&#xff09;的区域或集合 作用域决定了代…

【案例31】数据源密码保存不上

问题现象 客户反馈在启动BIP高级版时&#xff0c;Bip 2207启动异常。在相关的启动日志中排查发现&#xff0c;报数据源连接异常的错误。排查发现BIP高级版的数据源不通。发现密码字段为空导致。 问题分析 添加了正确的密码&#xff0c;测试通过保存。再次重启。发现还是报数据…