Leetcode刷题---删除有序数组中的重复项 II(双指针问题)

news2025/7/19 7:06:42

题目描述:
在这里插入图片描述
在这里插入图片描述
题目中已经给出该数组是一个升序的数组。要求数组中最多出现两个相同的元素,而且不能使用额外的存储空间,并且将新的数组的长度返回。

解题思想:
该题可以使用双指针来解决,我们可以定义一个快指针和一个慢指针。因为数组中最多只能出现两个相同的元素,所以我们可以将快慢指针的索引都设为2(第三个元素),之后,快指针和(慢指针-2)的值进行比对,如果值相等,则快指针前进一位,如果不相等,则证明出现了新的元素,此时就将快指针的值赋值给慢指针,之后慢指针再前进一位,快指针也前进一位。

代码实现:

class Solution {
    public int removeDuplicates(int[] nums) {
        //如果长度不超过2,则无需处理
        int n=nums.length;
        if(n<=2) return n;

        //设置双指针
        int slow=2;//慢指针
        int fast=2;//定义fast快指针,用来扫描数组
        while(fast<n)
        {
            if(nums[fast]!=nums[slow-2])
            {
                nums[slow]=nums[fast];//如果不一致,将将快指针的值传递给慢指针
                //之后慢指针向前移动一位
                slow++;
            }
            fast++;
        }
        return slow;

    }
}

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

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

相关文章

安装docker报错:except yum.Errors.RepoError, e:

问题描述&#xff1a; 在安装docker的时候&#xff0c;配置阿里云地址出现以下问题 问题原因&#xff1a; linux 系统中存在多版本的python. yum 依赖 python 2, 而个人使用 python 3 导致. 解决办法&#xff1a; 修改 /usr/bin/yum-config-manager文件中第一行 #!/usr/bin/p…

项目间的”藕断丝连“——从零到一搓个组件库

文章从零到一的封装设计 Starter&#xff0c;并提供可插拔 Starter 以及元数据配置等说明&#xff0c;并在可插拔上与开源 Zuul 进行比对&#xff0c;希望大家看后有所收获。 SpringBoot Starter 1. Starter 定义 SpringBoot Starter 类似于一种插件机制&#xff0c;抛弃了之…

pycharm更改远程服务器地址

一、问题描述 在运行一些项目时&#xff0c;我们常需要在pycharm中连接远程服务器&#xff0c;但万一远程服务器的ip发生了变化&#xff0c;该如何修改呢&#xff1f;我们在file-settings-python interpreter中找到远程服务器&#xff0c;但是发现ip是灰色的&#xff0c;没有办…

kkFileview任意文件读取漏洞复现

一、kkFileview简介 kkFileView&#xff0c;一款成熟且开源的文件文档在线预览项目解决方案。kkFileView为文件文档在线预览解决方案&#xff0c;该项目使用流行的spring boot搭建&#xff0c;易上手和部署&#xff0c;基本支持主流办公文档的在线预览&#xff0c;如doc,docx,x…

你一般会什么时候使用CHATGPT?

在当今数字时代&#xff0c;人们对于人工智能&#xff08;AI&#xff09;的依赖程度日益增加&#xff0c;而ChatGPT作为一种强大的自然语言处理工具&#xff0c;吸引了人们的广泛关注和应用。那么&#xff0c;人一般在什么时候会想要使用ChatGPT呢&#xff1f;这个问题涵盖了多…

Debookee 8 for Mac网络数据分析工具

Debookee是一款用于网络数据流量分析和嗅探的软件。它为用户提供了一个直观的界面&#xff0c;让他们能够查看和分析来自从网络上的各种设备的数据流量。 Debookee具有以下主要功能&#xff1a; 实时监控&#xff1a;Debookee可以实时监控网络上的数据流量&#xff0c;并将其显…

对话InfoQ,聊聊百度开源高性能检索引擎 Puck

近日&#xff0c;百度宣布在 Apache 2.0 协议下开源自研检索引擎 Puck&#xff0c;这也是国内首个适用于超大规模数据集的开源向量检索引擎。向量检索算法在个性化推荐系统、多模态检索、自然语言处理等应用场景中都发挥着重要作用&#xff0c;特别是在处理大规模数据和高维特征…

MyBatis无法读取XML中的Method的乌龙事件

事件背景 同事反馈&#xff0c;相同的jar包&#xff0c;在多人本地的电脑、多台服务器中&#xff0c;都是可以正常启动的&#xff0c;只有在其中一台服务器&#xff0c;简称它为A&#xff0c;无法启动&#xff0c;因为启动后的初始化操作中有一个调用mybatis方法的操作&#x…

python实现MC协议(SLMP 3E帧)的TCP服务端(篇二)

python实现MC协议&#xff08;SLMP 3E帧&#xff09;的TCP服务端是一件稍微麻烦点的事情。它不像modbusTCP那样&#xff0c;可以使用现成的pymodbus模块去实现。但是&#xff0c;我们可以根据协议帧进行组包&#xff0c;自己去实现帧的格式&#xff0c;而这一切可以基于socket模…

聊聊无源滤波器与有源滤波器的概念、区别与应用

随着电子技术的迅速发展&#xff0c;电子设备得到广泛的应用&#xff0c;然而电磁环境污染日趋严重&#xff0c;已成为当今主要公害之一。在很多领域里&#xff0c;电磁兼容性已成为电气和电子产品必须有的技术指标或性能评价的依据&#xff0c;通过使用电源滤波器来过滤掉电源…

Debug技巧-不启用前端访问后端

在日常开发中&#xff0c;我们经常会遇到各种问题需要调试&#xff0c;前后端都启动需要耗费一定的时间和内存&#xff0c;方便起见&#xff0c;可以直接用抓包数据访问后端&#xff0c;这里我们需要用到Postman或者ApiFox 抓包数据 在系统前台触发后端请求&#xff0c;在控制…

LiveNVR监控流媒体Onvif/RTSP功能-支持海康摄像头通过海康SDK接入支持回看倍速播放海康设备存储的设备录像

LiveNVR支持海康摄像头通过海康SDK接入支持回看倍速播放海康设备存储的设备录像 1、流媒体服务说明2、支持海康SDK接入3、查看设备录像3.1、时间轴模式3.2、列表模式 4、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、流媒体服务说明 LiveNVR可接入传统监控行业里面的高清网络摄像…

黑马 小兔鲜儿 uniapp 小程序开发- 微信登录用户模块- 06-07

黑马 小兔鲜儿 uniapp 小程序开发- 商品详情模块- day05-CSDN博客 小兔鲜儿 - 微信登录-06 涉及知识点&#xff1a;微信授权登录&#xff0c;文件上传&#xff0c;Store 状态管理等。 微信登录 微信小程序的开放能力&#xff0c;允许开发者获取微信用户的基本信息&#xff…

回馈式电子负载核心组成

回馈式电子负载是一种用于模拟负载电流和电压的测试设备。它由以下几个核心组成部分构成&#xff1a; 控制电路&#xff1a;控制电路是负载的核心部分&#xff0c;它负责接收输入的控制信号&#xff0c;并根据信号的要求来调整负载的工作状态。控制电路通常包括一个微处理器或者…

自主创建抖音商城小程序源码系统 带完整搭建教程

随着抖音平台的日益普及&#xff0c;越来越多的商家和用户选择在抖音上开展业务。抖音作为一款短视频社交平台&#xff0c;拥有庞大的用户群体和广阔的市场前景。今天罗峰就来给大家介绍一款抖音商城小程序源码系统&#xff0c;帮助用户快速创建自己的抖音商城&#xff0c;从而…

Revo Uninstaller Pro:终极卸载工具,彻底清除电脑痕迹

你是否曾为无法彻底卸载软件&#xff0c;残留大量无用文件而感到烦恼&#xff1f;是否曾因恶意软件难以清除&#xff0c;导致电脑运行缓慢&#xff1f;这些问题&#xff0c;Revo Uninstaller Pro都能帮你解决。 Revo Uninstaller Pro是一款专业的卸载工具&#xff0c;它不仅具…

国产系统(Linux)不支持长文件名的问题和解决方案

前言 众所周知&#xff0c;Linux系统中文件名长度不能超过255个字符&#xff01; 而大多数的Linux系统在显示中文时&#xff0c;使用的是UTF-8编码。这种编码在Linux中&#xff0c;一个中文需要占用3个字符&#xff01;因此&#xff0c;在Linux系统中&#xff0c;文件名最多也…

无测试组织:测试团队的敏捷转型

文章目录 写在前面01 从测试角度理解敏捷理念什么是敏捷&#xff1f;测试人员应该怎样理解敏捷理念&#xff1f;敏捷宣言对于测试活动的启发与思考总结如下敏捷原则12条敏捷实践框架为什么要做敏捷 02 什么是敏捷测试03 敏捷测试为什么会失败04 诊断脑暴会的成果示例测试团队转…

php如何将普通数据转化为json数据

PHP API接口必备之输出json格式数据 在日常的开发工作中免不了要写接口&#xff0c;json格式文本的输出是制作接口必须掌握的&#xff0c;现在通行的接口基本是采用json格式的数据&#xff0c;简单的php json文件输出 json接口如何生成&#xff1f;或者是如何将普通数据转化为…

推荐超好用的Java快速开发平台

快速开发平台 - Spring Boot 技术交流 交流 QQ 群&#xff08;千人大群&#xff09;&#xff1a;127515876、209330483、223507718、709534275、730390092、1373527、183903863(外包)码云Gitee&#xff1a;JeeSite 4.x and 5.x: &#x1f44d; Java 快速开发平台&#xff0c;…