LeetCode 26 删除有序数组中的重复项
1. 题目26. 删除有序数组中的重复项 - 力扣LeetCode题目描述给你一个升序排列的数组nums请你原地删除重复出现的元素使每个元素只出现一次 返回删除后数组的新长度。元素的相对顺序应当保持一致。不要使用额外的数组空间必须在 (O(1)) 额外空间条件下原地修改输入数组。无需考虑数组中超出新长度后面的元素。示例输入nums [1,1,2]输出2nums [1,2,] 输入nums [0,0,1,1,1,2,2,3,3,4] 输出5nums [0,1,2,3,4,,,,,]约束(1 nums.length 3 * 10^4)(-10^4 nums[i] 10^4)nums已按升序排列2. 最佳解题思路描述快慢双指针最优快慢指针定义slow慢指针指向当前有效数组最后一位初始为 0fast快指针遍历全部数组逐个寻找新的不重复数字遍历逻辑快指针遇到和nums[slow]不相等的元素说明是新唯一值slow拓展有效区间把新值覆盖到nums[slow]最终有效长度为slow 1。优势时间 (O(n))仅一次遍历空间 (O(1))无 erase、无数组移位有序数组去重通用模板面试首选。3. 我的可优化代码逻辑能 AC但性能差class Solution { public: int removeDuplicates(vectorint nums) { int nnums.size(); int m n; for(int i0;in-1;i){ if(nums[i]nums[i1]){ nums.erase(nums.begin()i); n--; i--; m--; } } return m; } };代码说明逻辑正确性发现相邻重复元素就 erase 删除数组长度 n 同步缩减i 回退重新判断当前位置m 记录最终长度能通过所有用例。核心缺陷 优化点vectorerase会让删除点后所有元素整体前移单次 erase 时间 (O(n))嵌套循环总时间复杂度 (O(n^2))数据量大时超时频繁修改数组长度、回退 i代码冗余、可读性差额外变量 m、n 重复记录长度无必要。4. 最优标准代码快慢双指针class Solution { public: int removeDuplicates(vectorint nums) { int slow 0; for (int fast 1; fast nums.size(); fast) { if (nums[fast] ! nums[slow]) { slow; nums[slow] nums[fast]; } } return slow 1; } };5. 总结你的 erase 暴力删除写法可以通过测试但时间效率极低面试不推荐有序数组原地去重标准解法是快慢双指针一次遍历无数组删除操作核心规律慢指针保存唯一值末尾快指针找新值不同则拓展有效区间返回长度切记slow 1slow 是下标不是长度。6. 相关知识拓展拓展 1同类模板联动LeetCode27 移除元素、26 有序去重、283 移动零共享快慢指针思想快指针筛选有效元素慢指针维护原地结果数组。拓展 2vector erase 性能坑vector 是连续内存中间删除元素必须移动后方所有元素算法题中应尽量避免循环内频繁 erase改用双指针覆盖赋值替代删除。拓展 3拓展变形保留最多 2 个重复项 LC80仅微调判断逻辑快慢指针框架不变int removeDuplicates(vectorint nums) { int slow 1; for(int fast 2; fast nums.size(); fast){ if(nums[fast] ! nums[slow-1]){ slow; nums[slow] nums[fast]; } } return slow1; }拓展 4复杂度对比erase 暴力写法时间 (O(n^2))空间 (O(1))快慢指针最优解时间 (O(n))空间 (O(1))。

相关新闻

终极指南:Cinnamon桌面增强神器gh_mirrors/ci/cinnamon-spices-applets安装与配置全攻略

终极指南:Cinnamon桌面增强神器gh_mirrors/ci/cinnamon-spices-applets安装与配置全攻略

终极指南:Cinnamon桌面增强神器gh_mirrors/ci/cinnamon-spices-applets安装与配置全攻略 【免费下载链接】cinnamon-spices-applets Applets for the Cinnamon desktop 项目地址: https://gitcode.com/gh_mirrors/ci/cinnamon-spices-applets gh_mirrors/ci/…

2026/7/27 14:26:36 阅读更多 →
BQ41Z50 BMS保护机制深度解析:从参数配置到永久失效诊断

BQ41Z50 BMS保护机制深度解析:从参数配置到永久失效诊断

1. BMS保护机制的核心逻辑与BQ41Z50的角色定位在锂离子电池的应用世界里,安全从来不是一句空话,而是由一系列精密的电子规则和硬件动作构成的“生命线”。作为一名在电池管理系统(BMS)领域摸爬滚打了十多年的工程师,我…

2026/7/27 14:26:36 阅读更多 →
5分钟快速上手Mission Planner:无人机地面站的终极完整指南

5分钟快速上手Mission Planner:无人机地面站的终极完整指南

5分钟快速上手Mission Planner:无人机地面站的终极完整指南 【免费下载链接】MissionPlanner Mission Planner Ground Control Station for ArduPilot (c# .net) 项目地址: https://gitcode.com/gh_mirrors/mi/MissionPlanner Mission Planner是一款功能强大…

2026/7/27 14:25:36 阅读更多 →

最新新闻

TI TPS929120-Q1汽车LED驱动EVM实战:从硬件连接到GUI调试全解析

TI TPS929120-Q1汽车LED驱动EVM实战:从硬件连接到GUI调试全解析

1. 项目概述与核心价值如果你正在开发汽车尾灯、内饰氛围灯或者需要独立控制多路LED的背光系统,那么德州仪器(TI)的TPS929120-Q1这颗12通道汽车级LED驱动芯片,很可能已经进入了你的选型清单。这颗芯片的强大之处在于其集成的FlexW…

2026/7/27 14:43:46 阅读更多 →
标注员标注南京话时分不清声调的差异,标注结果全是错的

标注员标注南京话时分不清声调的差异,标注结果全是错的

摘要随着智能语音技术在长江下游地区的普及,南京话的语音标注需求近年激增。然而标注员普遍难以辨析南京话的五个声调及入声韵尾,导致标注质量低下。信实翻译依托长三角地区丰富的译员网络,为数据堂、奥鹏等头部公司提供专业的南京话标注外包…

2026/7/27 14:43:46 阅读更多 →
甲方验收南京话标注数据,发现标注员标注逻辑不一致

甲方验收南京话标注数据,发现标注员标注逻辑不一致

摘要随着智能语音在长三角地区车载、家居场景的普及,南京话标注需求激增。然而,甲方在验收数据时频繁发现标注员逻辑不一致,导致模型识别率欠佳。南京话保留入声韵尾、入声调等古语特征,且新老派口音差异大,标注标准难…

2026/7/27 14:43:46 阅读更多 →
TPS7H4001QEVM-CVAL评估模块:四相并联降压转换器设计实战解析

TPS7H4001QEVM-CVAL评估模块:四相并联降压转换器设计实战解析

1. 项目概述与核心价值在电源设计领域,尤其是为高性能计算单元(如FPGA、ASIC)或航天载荷供电时,我们常常面临一个核心矛盾:单颗电源芯片的输出能力有限,而系统对电流的需求却日益增长。简单粗暴地并联器件往…

2026/7/27 14:43:46 阅读更多 →
UE项目管理实战:构建高效团队协作的版本控制与工作流

UE项目管理实战:构建高效团队协作的版本控制与工作流

1. 项目概述:为什么UE项目管理是团队协作的“隐形引擎” 如果你正在用Unreal Engine(UE)做项目,无论是独立游戏、影视动画还是数字孪生,大概率都遇到过这样的场景:美术同事更新了一个材质,程序那…

2026/7/27 14:43:46 阅读更多 →
Stereo-RCNN性能优化指南:从密集对齐到轻量化模型的实战技巧

Stereo-RCNN性能优化指南:从密集对齐到轻量化模型的实战技巧

Stereo-RCNN性能优化指南:从密集对齐到轻量化模型的实战技巧 【免费下载链接】Stereo-RCNN Code for Stereo R-CNN based 3D Object Detection for Autonomous Driving (CVPR 2019) 项目地址: https://gitcode.com/gh_mirrors/st/Stereo-RCNN Stereo-RCNN作为…

2026/7/27 14:42:46 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻