LeetCode-26. 删除有序数组中的重复项

news/2025/1/15 21:53:28/

目录

    • 题目分析
    • 双指针理解
    • 代码实现

题目来源
26. 删除有序数组中的重复项

题目分析

解法: 双指针
首先注意数组是有序的,那么重复的元素一定会相邻。
要求删除重复元素,实际上就是将不重复的元素移到数组的左侧。
考虑用 2 个指针,一个在前记作 p,一个在后记作 q,算法流程如下:
1.比较 p 和 q 位置的元素是否相等。
如果相等,q 后移 1 位 如果不相等,将 q 位置的元素复制到 p+1 位置上,p 后移一位,q 后移 1 位 重复上述过程,直到 q 等于数组长度。
返回 p + 1,即为新数组长度。
画个图理解一下
在这里插入图片描述
复杂度分析:
时间复杂度:O(n)。 空间复杂度:O(1)。

双指针理解

题目:外面有宝,赶紧捡回来按序放好,不能重样哟 有点像小夫妻俩,老公q在外面淘宝,找到后运回来,找到一个新的宝,老婆p在家里就给挖个新坑放好,最后外面没宝了,就结束咯

中间对话

老公:老婆,这个家里有没?(if) 老婆:有了。(nums[p] == nums[q])你再找找(q++)
老公:老婆,这个家里有没?(if) 老婆:这个没有,拿回来吧 (nums[p] != nums[q]) 放好了,我到下一个位置等你(p++) 你再继续找吧(q++)

代码实现

 public int removeDuplicates(int[] nums) {if(nums == null || nums.length == 0) return 0;int p = 0;int q = 1;while(q < nums.length){if(nums[p] != nums[q]){nums[p + 1] = nums[q];p++;}q++;}return p + 1;
}

在这里插入图片描述


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

相关文章

STM32—超声波测距

超声波简介 超声波测距模块是用来测量距离的一种产品&#xff0c;通过发送和收超声波&#xff0c;利用时间差和声音传播速度&#xff0c; 计算出模块到前方障碍物的距离。 型号&#xff1a;HC-SR04 时序图 怎么让它发送波 Trig触发信号&#xff0c;给Trig端口至少10us的高电平…

Golang如何优雅接入多个远程配置中心?

本文基于viper实现了apollo多实例快速接入&#xff0c;授人以渔&#xff0c;带着大家读源码&#xff0c;详解实现思路&#xff0c;封装成自己的工具类并且开源。 前言 viper是适用于go应用程序的配置解决方案&#xff0c;这款配置管理神器&#xff0c;支持多种类型、开箱即用、…

介绍一款2023年新出的mysql管理工具: FlyBird Database Manager

FlyBird Database Manager 介绍 FlyBird Database Manager 是一款mysql 界面化管理工具&#xff0c; 使用go语言编写&#xff0c;天然支持Windows, MacOS, Linux等主流平台。 提供无需安装的命令行版本&#xff0c; 命令行中启动服务&#xff0c;以html支持UI界面,在浏览器中…

UVM实战笔记(七)

第七章. UVM中的寄存器模型 7.1 寄存器模型简介 7.1.1 带寄存器配置总线的DUT 本章节使用的DUT带寄存器配置&#xff0c;代码如下&#xff1a; module dut(clk,rst_n,bus_cmd_valid,bus_op,bus_addr,bus_wr_data,bus_rd_data,rxd,rx_dv,txd,tx_en)input clk; …

三层交换机报文转发过程

如图所示&#xff0c;假如主机A想访问主机B&#xff0c;首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0).然后判断目的IP地址(即Host-B的IP地址)与自己的网络地址是不是在同…

CMMI之度量与分析(MA)

目的度量与分析&#xff08;Measurement and Analysis&#xff0c; MA&#xff09;的目的在于开发并保持用于支持管理信息需要的度量能力概述“度量与分析”过程域涉及以下活动&#xff1a;• 明确说明度量与分析的目标&#xff0c;使其与所识别的信息需要及项目、组织级或业务…

Java 开发环境配置 “JDK”(超详细整理,适合新手入门)

前言 &#x1f4dc; “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴 目录 前言 一、什么是JDK&#xff1f; 1、大概介绍 2、详细介绍 …

HttpClient和HttpURLConnection的区别和案例

转载&#xff1a; HttpClient和HttpURLConnection的区别和案例_China渔火的博客-CSDN博客_httpurlconnection和httpclient HttpURLConnection简介 在JDK的java.net包中已经提供了访问HTTP协议的基本功能的类&#xff1a;HttpURLConnection。 HttpURLConnection是Java的标准…