数据结构 ——— 顺序表oj题:编写函数,删除有序数组中的重复项

news2024/12/27 13:10:01

目录

题目要求

代码实现 


题目要求

一个升序排列的数组 nums ,要求原地删除重复出现的元素,使每个元素只出现一次,并返回删除后数组的新长度,元素的相对顺序应该保持一致


代码实现

代码演示:

int removeDuplicates(int* nums, int numsSize)
{
	int slow = 1;

	for (int fast = 1; fast < numsSize; fast++)
	{
		if (nums[fast] != nums[fast - 1])
		{
			nums[slow] = nums[fast];
			slow++;
		}
	}

	return slow;
}

代码解析:

使用快慢指针的概念完成代码逻辑,slow 和 fast 就相当于 nums 数组的下标,都从 1 开始执行,因为第一个元素不论是不是重复的都不需要改变

slow 指针的作用是:用来存储 nums 数组中只出现过一次的元素,且 for 循环执行完后,slow 的值就是新 nums 数组的长度

fast 指针的作用是:找 nums 数组中不同的元素,fast 是从 1 开始的,只要 nums[fast] 和 nums[fast-1] 不同时,那么 nums[fast] 就是那个不同的元素,直接赋值给 nums[slow] 即可

代码验证:

算法的时间复杂度:

for 循环执行了 N 次,且每次循环内部执行的是常数次,得出时间复杂度:

算法的时间复杂度(大O渐进表示法):O(N)

算法的空间复杂度:

没有开辟额外的空间,都是在 nums 原数组上操作的,得出空间复杂度:

算法的空间复杂度(大O渐进表示法):O(1)

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

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

相关文章

Unity3D 创建一个人物,实现人物的移动

1&#xff0c;创建项目 首先打开我们的Unity Hub 在我们的编译器下面新建项目&#xff0c;选择3D模板&#xff0c;更改一下我们的项目名称&#xff0c;选择一下路径&#xff0c;然后点击创建项目 等待项目创建。。。。。。 我们在项目里先创建一个plane&#xff0c;这样有点视…

大数据处理从零开始————8.基于Java构建WordCount项目

1.配置项目环境 1.1 配置ide工具 下载IntelliJ IDEA。 Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com.cn) 全部下一步&#xff0c;中途遇到需要勾选的全部勾选即可。 安装可以参考下面文章&#xff1a; 【附安装包】IDEA下载、安装、配置与使用&…

Chris,36岁勇辞管理,重回开发:一场高龄远程工作者有违常理的自我追寻。

这是《开发者说》的第18期&#xff0c;本期我们邀请的优秀远程开发者是Chris&#xff0c;同时他也是位知名博主&#xff1a;高龄程序员。 36岁&#xff0c;从世人艳羡的高管回到开发。诧异、不解、质疑……充斥不绝。是自绝后路&#xff0c;还是东山再起&#xff1f; 07年本科…

RocksDB Compaction的常见问题

1 概述 TiKV 底层存储引擎使用 RocksDB &#xff0c;RocksDB 是一个基于 LSM tree 的单机嵌入式数据库&#xff0c; 对于LSM Tree 来说compaction是个非常重要的操作&#xff0c;本文对TiKV中涉及的compaction相关内容进行了整理总结。 2 为什么需要 compaction ? LSM Tree 通…

Oracle数据恢复—异常断电导致Oracle数据库报错的数据恢复案例

Oracle数据库故障&#xff1a; 机房异常断电后&#xff0c;Oracle数据库启库报错&#xff1a;“system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。数据库没有备份&#xff0c;归档日志不连续。用户方提供了Oracle数据库的在线文件&#xff0c;需要恢复zxf…

嵌入式linux系统中库函数如何提高效率

工作中总是会用到各种库,比如本地使用静态库,下载源上的动态库;面试时也会经常性的问到,下面我做了一系列的总结,希望大家可以快速掌握各种库,以及库的制作和使用。 一、什么是库及其作用 库(英文为library)是一组预先编写好的代码、函数、类和其他程序组件的集合…

“迷雾深渊”炮击图设计

python尝试C题目&#xff0c;ai查错审码还写“代码解读”和学习总结。 (笔记模板由python脚本于2024年09月29日 10:51:58创建&#xff0c;本篇笔记适合喜欢python&#xff0c;鼓捣算法的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/…

OpenWrt学习(四)

分区、外网、OPKG 了解分区 在Linux系统中对闪存类存储器是采用MTD(内存技术设备)类设备驱动实现的,MTD是用于访问内存类设备(ROM、Flash)的Linux驱动子系统。它的主要目的是使Flash闪存类设备更容易被访问,为此它在硬件和上层提供了一个抽象的接口使得在操作系统下我们…

基于 ESP-AT 固件从外部服务器获取文件,使用分段续传的方式

**可使用 ATHTTPCGET 指令获取 HTTP\HTTPS 的资源&#xff0c;将返回资源的 Size 和 Data ** AT 指令序列如下&#xff1a; ATRESTOREATCWMODE1 //设置 WiFi Station 模式ATCWJAP"cc2.4","12345678" //连接 WiFi ATHTTPCHEAD…

前端 vue3 对接科大讯飞的语音在线合成API

主要的功能就是将文本转为语音&#xff0c;可以播放。 看了看官方提供的demo&#xff0c;嗯....没看懂。最后还是去网上找的。 网上提供的案例&#xff0c;很多都是有局限性的&#xff0c;我找的那个他只能读取第一段数据&#xff0c;剩下的不读取。 科大讯飞的接口&#xf…

中国一定赞!北京华联BHGMall献礼祖国75周年华诞,创新践行促消费体验再升级

北京华联BHGMall [华联股份(000882)] 作为零售行业核心力量&#xff0c;以广大消费者为核心&#xff0c;不断提升自身竞争力、优化服务、以实惠的价格优质的品牌组合创新的营销活动&#xff0c;带来全新的购物消费体验。 让利于民&#xff0c;以缤纷活动点燃国庆热烈氛围 金秋…

OpenAI创始成员Andrej Karpathy:这才是技术之美

来源 | 机器之心 技术应该是什么样子&#xff1f; 我们知道乔布斯有「为改变混乱繁杂而生的现代简约主义」的设计理念。所以苹果提供的科技产品都是简洁的。可斯人已逝&#xff0c;如今我们身边的科技产品似乎又进入了复杂与不实用的怪圈之中。 近日&#xff0c;知名 AI 领域学…

【教程】57帧! Mac电脑流畅运行黑神话悟空

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 1、先安装CrossOver。网上有许多和谐版&#xff0c;可自行搜索。&#xff08;pd虚拟机里运行黑神话估计够呛的&#xff09; 2、运行CrossOver&#xf…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布 VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版&#xff0c;Dell (戴尔)、HPE (慧与)、Lenovo (联想)、IEIT SYSTEMS (浪潮信息)、Cisco …

在使用表格识别工具时,如何确保识别的准确性?

在使用表格识别工具时&#xff0c;确保识别准确性的关键在于以下几个方面&#xff1a; 1.图像质量&#xff1a;确保扫描或拍摄的图像清晰&#xff0c;无遮挡、无反光、无阴影&#xff0c;并且文字清晰可辨 。 2.预处理图像&#xff1a;在图像送入OCR识别之前&#xff0c;进行…

Linux —— Socket编程(三)

一、本章重点 1. tcp服务器实现思路&#xff0c;进一步了解和总结相关的接口 2. 了解日志和守护进程 二、tcp服务器核心思路 tcp版的服务器与udp的不同在于&#xff0c;udp是面向数据报传输数据&#xff0c;在数据传输中不需要建立与客户端的链接&#xff0c;直接用recvfrom…

GEE数据集:1996 年到 2020 年全球红树林观测数据集(JAXA)(更新)

目录 简介 数据集说明 数据集 代码 代码链接 结果 引用 许可 网址推荐 0代码在线构建地图应用 机器学习 简介 全球红树林观测 这项研究使用了日本宇宙航空研究开发机构&#xff08;JAXA&#xff09;提供的 L 波段合成孔径雷达&#xff08;SAR&#xff09;全球mask…

银河麒麟服务器:更新软件源

银河麒麟服务器&#xff1a;更新软件源 1、使用场景2、操作步骤3、注意事项 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 1、使用场景 当需要安装最新软件或修改软件源配置后&#xff0c;需更新软件源以获取最新软件包信息。 2、操作步…

<<迷雾>> 第5章 从逻辑学到逻辑电路(2)--非门 示例电路

一个应用非门的例子 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch05-05-not-gate-sample.txt 原图 一个自带电源的常闭触点继电器属于…

基于定制开发与2+1链动模式的商城小程序搭建策略

摘要&#xff1a;本文探讨商城小程序的搭建策略&#xff0c;对比自主组建团队和第三方开发两种方式&#xff0c;强调以第三方开发模式为主的优势。阐述在第三方开发模式下&#xff0c;结合定制开发和21链动模式&#xff0c;如何搭建一款有助于企业商业模式创新与智能商业升级的…