当前位置: 首页 > news >正文

力扣第80题-删除有序数组的重复项Ⅱ

一、题目描述

给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在原地 修改输入数组并在使用 O(1) 额外空间的条件下完成。

二、代码实现

int removeDuplicates(int* nums, int numsSize) {
if (numsSize <= 2)
return numsSize;

int slow = 2;
for (int fast = 2; fast < numsSize; fast++) {
if (nums[fast] != nums[slow - 2]) {
nums[slow] = nums[fast];
slow++;
}
}
return slow;
}
三、思路

用快慢两个指针,当数组小于等于2时直接返回。

>2的时候将快慢指针指向2,如果快指针指向的数不等于慢指针指向的元素的前两位,则代表已经进入下一个元素,这个时候将快指针的值赋予慢指针,快慢指针都向前一位。当快指针的值等于慢指针的值则只需快指针向前一位,如果相同的值超过2个时,就只有快指针移动,直到遇到下一个元素。

http://www.jsqmd.com/news/690216/

相关文章:

  • 从‘盲人摸象’到‘精准设计’:聊聊酶定向进化如何让蛋白质工程告别‘拍脑袋’
  • ESP32与SI4684打造开源DAB+接收器全解析
  • Ubuntu 22.04 编译安装 GCC 13.1.0 踩坑实录:从下载到解决 GLIBCXX_3.4.31 报错
  • 零代码搭建小程序的完整流程指南
  • 爆火 GPT-image-2 加持!AI 短剧带货系统,多平台矩阵自动引流
  • Python算法测试框架构建指南:从基础到高级实践
  • Spark 3.4分布式深度学习实战:训练与推理优化
  • 代码提交即“秒拒”?揭秘如何自动化检测与系统性提升代码质量
  • 教授专栏206| 崔华晨:液滴自驱动跳跃机理方面取得突破
  • 别再手动抄坐标了!用Python一键提取UG模型边界点(附完整代码)
  • 别再只测频率了!用DSP28335的eCAP模块,手把手教你实现高精度脉冲宽度与占空比测量
  • 为什么番茄小说下载器能成为你的离线阅读神器?
  • LILYGO T-Panel双芯片物联网开发平台解析与实践
  • Windows用户的福音:在Pycharm里搞定PointNetLK环境(避坑VirtualBox+Ubuntu)
  • 【后端开发】(图解/实例)一文彻底讲清 DTO、VO、DO、PO、BO:别再在项目里乱用了
  • Docker 27边缘节点编排必须关闭的4个默认选项,否则集群稳定性将随节点数呈指数级坍塌
  • SchoolCMS:构建现代化校园管理的终极开源解决方案
  • 企业题库建设太慢?聊聊宏远培训考试系统 5 种试题录入方式的实际价值
  • 从 PPT 到提案页,为什么 B2B 企业也越来越需要品牌设计
  • 渔人的直感:3大核心功能让你的FF14钓鱼效率提升300%
  • 音频解放:ncmdumpGUI的数字破茧三重奏
  • 梯度提升算法(GBDT)原理与XGBoost/LightGBM/CatBoost实战
  • ContextMenuManager终极指南:如何快速清理和个性化Windows右键菜单
  • OpenFOAM v8波浪模拟:手把手教你配置alpha.water、p_rgh和U的边界条件(含waveAlpha详解)
  • 树莓派4B/CM4上Ubuntu 18.04 CSI摄像头配置全攻略(含常见错误解决方案)
  • GEO优化系统实战:如何在不侵犯隐私的前提下提升用户体验?
  • 国商联癌症康复中心是真的假的?一文说清楚
  • Blender终极曲线插件:从零到精通的完整指南
  • 【CUDA 13.4 AI算子优化终极指南】:2026年NVIDIA官方未公开的8大内核调度黑科技首次深度披露
  • 别墅装修的墙面开裂难题:从材料到工艺的全链路避坑与修复指南