力扣 —— 删除有序数组中的重复项

题目思路

两个指针,一个是游标的功能,负责遍历整个数组,一个是定位器的功能,如果有相等的则表示定位器目前指向的元素是重复的,定位器不动,等待游标往下找到不重复的数填充进来,因为游标会遍历整个数组且总是比定位器快,所以数组中的一个元素被游标遍历后就没用了,直接把不重复的数塞到定位器位置,定位器同步往后挪,最后定位器的位置+1就是去重数组的长度。

题目一 (简单)

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

示例 1:

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

示例 2:

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

答案

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

题目二 (中等)

  1. 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。
  2. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1)额外空间的条件下完成。

示例 1:

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

示例 2:

输入: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。不需要考虑数组中超出新长度后面的元素

答案

class Solution {public int removeDuplicates(int[] nums) {int slow = 1;for(int fast=2; fast<nums.length; fast++){  // fast从2开始,因为前两个必定是要的if(nums[fast] == nums[slow] && nums[slow] == nums[slow-1]){  // 出现了第三个重复的continue;}nums[++slow] = nums[fast];}return slow + 1; }
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

防火墙详解(一) 网络防火墙简介

原文链接&#xff1a;https://blog.csdn.net/qq_46254436/article/details/105519624 文章目录 定义 与路由器和交换机的区别 发展历史 防火墙安全区域 定义 防火墙主要用于保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为 “防火墙”一词起源于建筑领域&…

Openai gym environment for multi-agent games

题意&#xff1a;用于多智能体游戏的 OpenAI Gym 环境 问题背景&#xff1a; Is it possible to use openais gym environments for multi-agent games? Specifically, I would like to model a card game with four players (agents). The player scoring a turn starts the…

8月份工业机器人产量同比增长20%

近日&#xff0c;国家统计局公布数据显示&#xff0c;8月份&#xff0c;我国工业机器人产量为47947套&#xff0c;较去年同期增长20%&#xff1b;1-8月份&#xff0c;总产量为360592套&#xff0c;较去年同期增长9.9%。 9月14日&#xff0c;国家统计局发布数据显示&#xff0c;…

十大常用加密软件排行榜|2024年好用的加密软件推荐【精选】

在信息安全日益重要的时代&#xff0c;加密软件成为保护个人和企业数据的关键工具。选择合适的加密软件可以有效防止数据泄露和未授权访问。以下是2024年值得推荐的十大加密软件&#xff0c;帮助你找到适合的解决方案。 1. Ping32加密软件 Ping32是一款功能强大的加密软件&…

Spring Boot 学习之路 -- 处理 HTTP 请求

前言 最近因为业务需要&#xff0c;被拉去研究后端的项目&#xff0c;代码基于 Spring Boot&#xff0c;对我来说完全小白&#xff0c;需要重新学习研究…出于个人习惯&#xff0c;会以 Blog 文章的方式做一些记录&#xff0c;文章内容基本来源于「 Spring Boot 从入门到精通&…

【数列求值 / B】

题目 一般做法 #include <bits/stdc.h> using namespace std; const int mod 10000; int f[20190325] {1, 1, 1, 1}; int main() {for(int i 4; i < 20190324; i){f[i] (f[i-1] f[i-2] f[i-3]) % mod;}cout << f[20190324]; } 快速幂矩阵乘法 #includ…

索迪迈车载监控设备的优势有哪些

在当今社会&#xff0c;车载监控设备已经成为保障公共安全与交通管理的重要工具。索迪迈车载监控设备&#xff0c;以其先进的技术和卓越的性能&#xff0c;成为业界的佼佼者。其优势主要体现在以下几个方面&#xff1a; 一、抽拔式硬盘设计 1. 便捷的数据管理 车载监控设备需…

Rk628D 在 RK3588s平台上的驱动移植

硬件平台: W1_AI_RK3588S_V0 处理器: rk3588s kernel版本: Linux version 5.10.110 芯片是:rk628D 目的是:(4k)HDMI输入mipi 输出 1、下载RK628 最新(2024.09)的代码链接: 通过百度网盘分享的文件:RK628 链接:https://pan.baidu.com/s/1zN9yD2FQWAzVUMY1op…

Java面试题大全(全网最全,持续更新)初级(2)

1. 基础语法 1.1. Java 的数据类型有哪些&#xff1f; Java 有两种数据类型&#xff1a; 基本数据类型&#xff08;Primitive Types&#xff09;&#xff1a;包括 byte、short、int、long、float、double、char、boolean。引用数据类型&#xff08;Reference Types&#xff…

环境领域顶刊EST发表!又一次颠覆性突破!

2023年3月21日&#xff0c;普林斯顿大学任智勇教授团队针对最近爆火的ChatGPT和环境研究的交叉在环境领域顶级期刊《Environmental Science & Technology》发表了观点类文章“ChatGPT and Environmental Research”。 任智勇教授中对未来的展望表示&#xff1a; 颠覆性技术…

便携式气象观测仪的工作原理

TH-PQX9】便携式气象观测仪是一种集多种气象要素观测于一体&#xff0c;便于携带和使用的小型气象观测设备。实时监测和记录多种气象要素&#xff0c;包括温度、湿度、风速、风向、气压、太阳辐射、雨量等&#xff0c;满足不同场景下的气象监测需求。采用高精度传感器&#xff…

平板电容笔哪个牌子好?精选电容笔品牌排行榜前五名推荐!

在当今时代&#xff0c;平板电容笔已经成为平板电脑的重要配件&#xff0c;为人们的学习、工作和创作带来了极大的便利。然而&#xff0c;市场上平板电容笔的品牌众多&#xff0c;质量和性能也参差不齐&#xff0c;这让消费者在选择时常常感到困惑。平板电容笔究竟哪个牌子更好…

计算n个节点所能组成的不同二叉搜索树(卡特兰数)

计算n个节点所能组成的不同二叉搜索树的时候我们一般都是画图&#xff0c;但是有一个拱墅可以快速计算

概率论与数理统计(持续更新)

一.概率论基本概念 1.确定性现象与非确定性现象 确定性现象&#xff0c;具有事前可预言性 非确定性现象&#xff0c;具有事前不可预言性 2.随机现象&#xff0c;在个别实验中具有不确定性&#xff0c;在大量重复实验中呈现规律性 统计规律性&#xff0c;大量同类随机现象所…

TCP 协议机制超详解

我的主页&#xff1a;2的n次方_ 1. 协议结构 2. 确认应答 在之前提到过 TCP 的核心机制是确认应答&#xff0c;可以确认对方是否收到数据&#xff0c;在数据传输的过程中&#xff0c;如果有多条请求&#xff0c;并且返回对应的响应&#xff0c;但是此时可能会出现这样的问题…

【通俗易懂】知识图谱增强 RAG 思路 和 实现方案

【通俗易懂】知识图谱增强 RAG 思路 和 实现方案 为什么用 知识图谱增强 RAG&#xff1f;对比传统方法3 种实现方式 方案一&#xff1a;利用 KG 关系网络&#xff0c;构建问题子图促精准解答地图固定深度整体优化方案 方案二&#xff1a;利用 KG 语义关联&#xff0c;提升文档片…

【重学 MySQL】三十八、group by的使用

【重学 MySQL】三十八、group by的使用 基本语法示例示例 1: 计算每个部门的员工数示例 2: 计算每个部门的平均工资示例 3: 结合 WHERE 子句 WITH ROLLUP基本用法示例注意事项 注意事项 GROUP BY 是 SQL 中一个非常重要的子句&#xff0c;它通常与聚合函数&#xff08;如 COUNT…

C++ -缺省参数-详解

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【C】 欢迎点赞&#x1f44d;收藏⭐关注❤️ C -缺省参数-详解 1.是什么2.分类2.1全缺省参数2.2半缺省参数&#xff1a; 3.实际应用4.关于缺省参数的声明与定义5.总结 1.是什么 先来看看下面这段代码&#xff1a; #incl…

HTML5简介的水果蔬菜在线商城网站源码系列模板3

文章目录 1.设计来源1.1 主界面1.2 商品列表1.3 商品信息1.4 购物车1.5 其他页面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.ne…

JavaScript 类型转换:数字转换和 Symbol 类型转换

数字转换 将数据类型转换为数字称为数字转换&#xff0c;可以使用Number()、parseInt()、parseFloat()等方法将数据类型显式转换为数字。当一个值不能被强制转换为一个数字时&#xff0c;就会返回 NaN。 1. 字符串 > 数字&#xff1a; 当把字符串转换为数字时&#xff0c…