LeetCode80. 删除有序数组中的重复项 II

news/2024/11/25 17:47:24/

  • 题目描述
  • 思路
  • 流程图
  • 代码

题目描述

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

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

LeetCode80. 删除有序数组中的重复项 II

思路

这道题目其实就是说,数组中如果存在重复元素的话,那么这个元素只能出现两次。像这种原地修改的题目,很容易就想到双指针

  • 慢指针 slow : 指向当前即将放置元素的位置;则 slow - 1 是刚才已经放置了元素的位置。
  • 快指针 fast : 向后遍历所有元素;
  • 所以让 nums[fast] 跟 nums[slow - 2] 进行比较。每次都是只允许最多两个元素出现重复,这两个元素的位置在 slow - 1 和 slow - 2.
  • 从题目我们可以分析得出,前两个元素肯定是要保留下来的

流程图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

class Solution {public int removeDuplicates(int[] nums) {if (nums.length<=2){return nums.length;}int slow=2;int fast=2;while (fast<nums.length){if (nums[fast]!=nums[slow-2]){nums[slow]=nums[fast];slow++;}fast++;}return slow;}
}

http://www.ppmy.cn/news/606285.html

相关文章

LeetCode简单题之找不同

题目 给定两个字符串 s 和 t &#xff0c;它们只包含小写字母。 字符串 t 由字符串 s 随机重排&#xff0c;然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1&#xff1a; 输入&#xff1a;s “abcd”, t “abcde” 输出&#xff1a;“e” 解释&#xff1a…

Intel的Barefoot与AMD的Pensando技术

Intel的Barefoot与AMD的Pensando技术 英特尔是半导体行业和计算创新领域的全球领先厂商 &#xff0c;创始于1968年。如今&#xff0c;英特尔正转型为一家以数据为中心的公司。英特尔与合作伙伴一起&#xff0c;推动人工智能、5G、智能边缘等转折性技术的创新和应用突破&#xf…

数据结构:线性表的实现

静态数组与动态数组线性表的定义List接口的定义ArrayList及其方法的实现属性构造器把数组转换为线性表的方法判断是否需要扩容和缩容问题添加元素的方法删除元素的方法修改元素的值获取元素的值获取线性表元素个数获取线性表中数组容量获取元素在线性表下标判断是否包含某个元素…

RISC-V技术与展望

RISC-V技术与展望 RISC-V&#xff08;发音为“risk-five”&#xff09;是一个基于精简指令集&#xff08;RISC&#xff09;原则的开源指令集架构&#xff08;ISA&#xff09;。 与大多数指令集相比&#xff0c;RISC-V指令集可以自由地用于任何目的&#xff0c;允许任何人设计、…

LeetCode简单题之赎金信

题目 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输入&am…

vtk创建点

使用vtk库创建三维空间中的点 引言开发环境示例一项目结构实现代码 运行效果示例二项目结构实现代码 运行效果总结 引言 本文仅适合初学者。 本文不提供vtk动态库的生成&#xff0c;以及在QtCreator中的引进vtk时的配置。 本文先由示例一开始&#xff0c;然后再在示例一的基础…

独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了...

机器之心报道 作者&#xff1a;邱陆陆 8 月中旬&#xff0c;谷歌大脑成员 Martin Wicke 在一封公开邮件中宣布&#xff0c;新版本开源框架——TensorFlow 2.0 预览版将在年底之前正式发布。今日&#xff0c;在上海谷歌开发者大会上&#xff0c;机器之心独家了解到一个重大的改变…

数据结构:栈及其应用

栈的初步认识栈的设计Stack接口ArrayStack类(栈的顺序存储具体实现)十进制和十六进制的互相转换十进制转为十六进制十六进制转为十进制判断回文有效的括号逆波兰表达式求值栈的初步认识 栈的设计 Stack接口 因为栈可以用顺序存储实现也可以用链式存储实现&#xff0c;所以把共…