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

【leetcode面试经典150题】4.删除有序数组中的重复项 II(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

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

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

【说明】

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {print(nums[i]);
}

【示例一】

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

【示例二】

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

【提示及数据范围】

  • 1 <= nums.length <= 3 * 10的4次方
  • -10的4次方 <= nums[i] <= 10的4次方
  • nums 已按升序排列

【代码】

// 本题是上一题的变体,每个数字从只能保留一个到只能保留两个。对上上次保留下来的数字进行检查即可。
int removeDuplicates(vector<int>& nums) {int len = nums.size();if(len < 2) return len;int slow = 2,fast = 2;while(fast < len){if(nums[slow-2] != nums[fast]){nums[slow] = nums[fast];slow++;}fast++;}return slow;
}
http://www.lryc.cn/news/331372.html

相关文章:

  • 【LeetCode热题100】【普通数组】合并区间
  • 自我认识的方法模型图
  • dhcp和dhcp中继代理
  • 【fastadmin】脚本模式下,日志钩子函数执行出现死循环,导致内存溢出奔溃
  • gitlab代码迁移,包含历史提交记录、标签、分支
  • 通过TCP或UDP向某个IP和端口发送数据
  • Go语言介绍及Go语言成功的项目列举
  • CQI-17:2021 V2 英文 、中文版。特殊过程:电子组装制造-锡焊系统评审标准
  • 普通Java工程可执行JAR两种打包方式探讨
  • 开源博客项目Blog .NET Core源码学习(13:App.Hosting项目结构分析-1)
  • Vue的双向绑定v-model详细介绍
  • AWS入门实践-S3对象存储的基本用法
  • el-tree-v2渲染树形大数据并设置默认展开
  • 损失函数篇 | YOLOv8更换损失函数之MPDIoU(23年7月首发论文)
  • 【力扣】200.岛屿数量(染色法DFS深搜)
  • 达梦配置ODBC连接
  • 独孤思维:高客单价项目,必须来一个
  • 学习java第三十二天
  • 力扣150. 逆波兰表达式求值
  • hololens 2 投屏 报错
  • 初次在 GitHub 建立仓库以及公开代码的流程 - 公开代码
  • 论文笔记 - :MonoLSS: Learnable Sample Selection For Monocular 3D Detection
  • LVS、HAProxy
  • 开发环境->生产环境
  • 基于AI智能识别技术的智慧展览馆视频监管方案设计
  • Leetcode-894-所有可能的真二叉树-c++
  • Django DRF视图
  • SQLite全文搜索引擎:实现原理、应用实践和版本差异
  • day17-二叉树part04
  • 书生浦语第一次课