C++ Vector 核心问题精讲

解题思路 由于数组是非严格递增的,重复的元素必然是相邻的。我们可以用两个指针:

  • 慢指针 prev:标记 “已处理的无重复元素” 的最后一个位置。
  • 快指针 curr:遍历数组,寻找新的、未出现过的元素。

在这里插入图片描述

结合示例 1(输入nums = [1,1,2])拆解解题过程: 步骤 1:初始化指针

  • 慢指针 prev 初始化为 0(指向数组第一个元素 1)。
  • 快指针 curr 初始化为 1(从第二个元素开始遍历)。

步骤 2:第一次循环(curr = 1) 此时 nums[curr] = 1,nums[prev] = 1,两者相等。

  • 因为元素重复,不需要更新nums,仅将 curr 后移(curr = 2)。
  • 数组状态仍为 [1, 1, 2]。

步骤 3:第二次循环(curr = 2) 此时 nums[curr] = 2,nums[prev] = 1,两者不相等。

  • 先将 prev 后移(prev = 1)。
  • 把 nums[curr] 的值(2)赋给 nums[prev],此时数组变为 [1, 2, 2]。
  • 再将 curr 后移(curr = 3),此时 curr 超出数组长度,循环结束。

步骤 4:返回结果最终 prev = 1,无重复元素的数量为 prev + 1 = 2,与示例输出一致。数组的前 2 个元素为 [1, 2],满足题目要求。

尤其注意:慢指针 prev 最终指向的是“无重复元素区域” 的最后一个元素的索引,需要返回的是无重复元素的数量

通过这样的步骤,双指针法在原地完成了重复元素的删除,同时保证了时间复杂度为O(n)、空间复杂度为 O(1),是该问题的最优解法。

二、只出现一次的数字

在这里插入图片描述

写这道题要清楚异或运算的特性: 异或运算(^)是基于二进制位的操作,规则是:对应二进制位相同则为 0,不同则为 1

代码语言:javascript

AI代码解释

3 的二进制:011(8 位表示为 00000011) 5 的二进制:101(8 位表示为 00000101) 合并结果为 00000110,即十进制的 6。所以 3 ^ 5 = 6

性质 1:相同的数异或,结果为 0。例如 2 ^ 2 = 0,5 ^ 5 = 0。 性质 2:0 和任意数异或,结果为这个数本身。例如 0 ^ 3 = 3,0 ^ 99 = 99

异或元素还满足: 交换律:a ^ b = b ^ a(异或的顺序不影响结果)。 结合律:(a ^ b) ^ c = a ^ (b ^ c)(可以任意调整异或的组合顺序)


www.dongchedi.com/article/7594176579102884414
www.dongchedi.com/article/7594177062877839897
www.dongchedi.com/article/7594174721596473881
www.dongchedi.com/article/7594175192449008153
www.dongchedi.com/article/7594173652875444760
www.dongchedi.com/article/7594172550394069566
www.dongchedi.com/article/7594172678253265470
www.dongchedi.com/article/7594171407253275198
www.dongchedi.com/article/7594169982704173593
www.dongchedi.com/article/7594171805393650201
www.dongchedi.com/article/7594171076024812094
www.dongchedi.com/article/7594169163703271998
www.dongchedi.com/article/7594155915663180313
www.dongchedi.com/article/7594152900747100734
www.dongchedi.com/article/7594151966180426264
www.dongchedi.com/article/7594148426036904473
www.dongchedi.com/article/7594143100311192088
www.dongchedi.com/article/7594143206229705278
www.dongchedi.com/article/7594143047860961817
www.dongchedi.com/article/7594143133597205054
www.dongchedi.com/article/7594143172075487806
www.dongchedi.com/article/7594143133597073982
www.dongchedi.com/article/7594142854390759961
www.dongchedi.com/article/7594111120601039384
www.dongchedi.com/article/7594111426885583384
www.dongchedi.com/article/7594112371485393470
www.dongchedi.com/article/7594109925660426776
www.dongchedi.com/article/7594108812211438104

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

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

相关文章

数字电路实验驱动继电器控制:操作指南

用数字电路控制真实世界:继电器驱动实战全解析你有没有试过用一个单片机IO口,点亮家里220V的台灯?听起来像魔法,其实原理并不复杂——关键就在于继电器。它是连接弱电逻辑与强电负载之间的“桥梁”。在数字电路实验中,…

专业级手机摄像头集成方案:DroidCam OBS Plugin深度解析

专业级手机摄像头集成方案:DroidCam OBS Plugin深度解析 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 在视频制作和直播领域,高质量的摄像头设备往往意味着高昂的…

emwin界面缩放适配方案探讨

emWin界面缩放适配:从原理到实战的系统性方案在嵌入式图形界面开发中,一个看似简单却极具挑战的问题是——如何让同一套UI代码,在不同尺寸、不同分辨率的屏幕上都“长得好看”?这并不是简单的“放大缩小”就能解决的事。按钮会不会…

FlightSpy智能机票追踪系统:数据驱动的出行决策革命

FlightSpy智能机票追踪系统:数据驱动的出行决策革命 【免费下载链接】flight-spy Looking for the cheapest flights and dont have enough time to track all the prices? 项目地址: https://gitcode.com/gh_mirrors/fl/flight-spy 在传统机票预订模式中&a…

StructBERT零样本分类教程:领域适应方法

StructBERT零样本分类教程:领域适应方法 1. 引言 1.1 AI 万能分类器 在当今信息爆炸的时代,文本数据的自动化处理已成为企业智能化转型的核心需求。无论是客服工单、用户反馈、新闻资讯还是社交媒体内容,都需要高效准确地进行分类打标。然…

QMC音频解密终极指南:三分钟解锁加密音乐文件

QMC音频解密终极指南:三分钟解锁加密音乐文件 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为无法播放的QMC加密音频而烦恼吗?这些看似"…

PvZ Toolkit实战手册:解锁植物大战僵尸无限可能

PvZ Toolkit实战手册:解锁植物大战僵尸无限可能 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 还在为游戏资源不足而烦恼吗?想要轻松应对无尽模式的极限挑战?Pv…

GPU内存诊断专家:MemTestCL完全使用指南与深度解析

GPU内存诊断专家:MemTestCL完全使用指南与深度解析 【免费下载链接】memtestCL OpenCL memory tester for GPUs 项目地址: https://gitcode.com/gh_mirrors/me/memtestCL MemTestCL是一款专业的OpenCL内存测试工具,专门用于检测GPU、CPU和加速器中…

Nrfr免Root工具:全球漫游网络优化的终极解决方案

Nrfr免Root工具:全球漫游网络优化的终极解决方案 【免费下载链接】Nrfr 🌍 免 Root 的 SIM 卡国家码修改工具 | 解决国际漫游时的兼容性问题,帮助使用海外 SIM 卡获得更好的本地化体验,解锁运营商限制,突破区域限制 …

移动端PDF预览完整解决方案:告别兼容性困扰

移动端PDF预览完整解决方案:告别兼容性困扰 【免费下载链接】pdfh5 项目地址: https://gitcode.com/gh_mirrors/pdf/pdfh5 在移动互联网时代,PDF文档的在线预览已成为各类应用的标配功能。然而传统的PDF预览方案往往存在加载缓慢、交互体验差、兼…

Zotero-reference插件复制功能失效的终极解决方案指南

Zotero-reference插件复制功能失效的终极解决方案指南 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 最近很多用户在升级Zotero 7.0版本后遇到了一个棘手问题:点击文…

yuzu模拟器输入精度调校指南:从基础校准到专业级优化

yuzu模拟器输入精度调校指南:从基础校准到专业级优化 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 在竞技游戏《Splatoon 3》中,每一帧的精准瞄准都至关重要,而《塞尔达传说&a…

脉冲信号处理机制:数字电路实验从零实现

脉冲信号处理机制:从机械按钮到数码管显示的完整数字电路实践你有没有试过按下一次按钮,结果计数器却加了好几次?或者明明只按了一下,LED却闪烁不停?这背后,很可能不是你的电路“坏了”,而是你还…

如何高效采集抖音评论数据:零基础实战指南

如何高效采集抖音评论数据:零基础实战指南 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 还在为抖音评论数据采集而烦恼吗?传统方法效率低下且难以获取完整信息。今天为大家带来一款…

智能机票监控系统:让科技为你的旅行省钱

智能机票监控系统:让科技为你的旅行省钱 【免费下载链接】flight-spy Looking for the cheapest flights and dont have enough time to track all the prices? 项目地址: https://gitcode.com/gh_mirrors/fl/flight-spy 你是否曾因机票价格波动而错失优惠&…

Linux下screen指令实战案例:后台任务管理详解

掌握 Linux 后台任务的“不死之身”:screen实战全解你有没有过这样的经历?深夜在服务器上跑一个数据迁移脚本,眼看着进度条走到 80%,突然网络断了——SSH 连接中断,终端一关,进程直接被 kill。第二天打开电…

零样本分类最佳实践:如何利用AI万能分类器优化工单处理

零样本分类最佳实践:如何利用AI万能分类器优化工单处理 1. 引言:工单处理的智能化挑战与AI破局 在现代企业服务系统中,工单(Ticket)是客户问题流转的核心载体。无论是技术支持、售后服务还是内部运维,每天…

Umi-OCR部署实战:从下载到高效使用的完整流程

Umi-OCR部署实战:从下载到高效使用的完整流程 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHub_Trend…

终极法线贴图生成器:零基础打造专业级3D纹理效果

终极法线贴图生成器:零基础打造专业级3D纹理效果 【免费下载链接】NormalMap-Online NormalMap Generator Online 项目地址: https://gitcode.com/gh_mirrors/no/NormalMap-Online 还在为3D模型缺乏细节而烦恼吗?NormalMap Online法线贴图生成器为…

CircuitJS1 Desktop Mod:零基础也能玩转的电路模拟神器!

CircuitJS1 Desktop Mod:零基础也能玩转的电路模拟神器! 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator based on NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1 还在为复杂的电路理论…