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

news2024/11/19 7:48:26

目录

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

题目来源
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.coloradmin.cn/o/183694.html

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

相关文章

拉伯证券|7900亿芯片巨头狂跌,发生了什么?

全球芯片巨子忽然爆雷。 英特尔刚刚交出了一份“十分糟糕”的财报。美东时间1月26日美股盘后&#xff0c;英特尔公布的2022第四季度及全年财报显现&#xff0c;第四季度的营收为140亿美元&#xff0c;同比大幅下降32%&#xff0c;不及商场预期&#xff1b;第四季度净亏损7亿美元…

【项目精选】基于SpringBoot和Vue开发的功能强大的图书馆系统(附源码)

功能介绍 图书馆系统功能包括&#xff1a; 1、读者端&#xff1a; 1.智能推荐图书 2.读者在线预约座位 3.读者借阅归还图书 4.图书详情 5.图书评论、评星 6.用户登录、注册、修改个人信息 7.用户自定义图书标签 8.用户报名活动参加活动 9.书架展示和添加删除 10.用户邮件登录…

Win11的两个实用技巧系列之u盘怎么设置密码?

Win11系统u盘怎么设置密码?Win11设置u盘密码的方法win11U盘怎么设置密码&#xff1f;今天小编就为大家带来了Win11设置u盘密码的方法&#xff0c;需要的朋友一起看看吧现在还是有很多用户都在使用U盘来存储一些重要的文件和数据&#xff0c;而为了更好的保护里面的安全&#x…

mongodb的索引操作

Mongodb的索引操作 学习目标 掌握 mongodb索引的创建&#xff0c;删除操作掌握 mongodb查看索引的方法掌握 mongodb创建唯一索引的方法 1. 为什么mongdb需要创建索引 加快查询速度进行数据的去重 2. mongodb创建简单的索引方法 语法&#xff1a;db.集合名.ensureIndex({属…

【手写 Promise 源码】第八篇 - 完善 Promise 并通过 promise-aplus-tests 测试

一&#xff0c;前言 上一篇&#xff0c;实现 Promise 对返回值 x 各种情况的分析和处理&#xff0c;主要涉及以下几个点&#xff1a; 回顾了相关的 Promise A 规范内容&#xff1b;根据 Promise A 规范描述和要求&#xff0c;实现了核心解析方法&#xff1a;resolvePromise&a…

BUUCTF-Reverse Writeup【持续更新】

本文示例程序可见 BUUCTF 官网或者 github easyre | 入门级 方法一&#xff1a;WinHex 打开 easyre.exe&#xff0c;浏览一下字符串&#xff0c;发现有flag方法二&#xff1a;IDA Pro 打开 easyre.exe&#xff0c;能直接看到flag&#xff0c;或者 F5 反汇编看到逻辑是输入两个…

怎么把多个JPG合并成一个PDF?还不快来学

我们通常在处理工作文件时会有很多JPG图片需要传输&#xff0c;不过JPG图片数量一般都非常多&#xff0c;我们需要一张一张的进行传输&#xff0c;不仅会浪费很多时间&#xff0c;还很不方便查看&#xff0c;所以我们就可以及将JPG图片合并到一个PDF文件中&#xff0c;这样就可…

直流电机控制器设计

导读:本文主要介绍了DC-motor电流环和速度环的PI控制器参数的设计,并且简单介绍了设计控制器所需要的背景知识,相关仿真文件的下载地址在文章末尾可供大家下载。 DC-motor 的数学模型 直流电机电枢绕组的电压方程为:

阿里紧急辟谣,全球总部始终在杭州,造谣者请放过民营经济吧

树欲静&#xff0c;而风不止。春节期间又一则关于阿里的谣言&#xff0c;再次广泛传播。谣言称&#xff0c;“阿里在新加坡筹建全球总部”。这则谣言前后&#xff0c;网络上还有许多关于阿里早期创始人移民的各种传言。2023年1月27日下午&#xff0c;阿里集团相关负责人进行了辟…

SparkSQL中4个排序的区别

常用的四个排序BY ORDER BYSORT BYDISTRIBUTE BYCLUSTER BY 此文只是结合官方文档和案例做一下说明下功能 数据集描述 数据如上所示,并手动将分区数设定在2个,默认以 id 字段作为分区依据 原始数据分布 情况如下 相同id的数据都分到了同一个分区内 ORDER BY子句 官网说明: …

JavaScript 执行上下文

什么是执行上下文 JavaScript是一种客户端脚本语言&#xff0c;通常在Web浏览器中执行。当您在浏览器中加载网页时&#xff0c;浏览器会解析HTML文档并创建文档对象模型 (DOM)。在这个过程中&#xff0c;浏览器会寻找包含JavaScript代码的script标签并执行这些代码。 当浏览器…

46.Isaac教程--在机器人应用Deepstream

在机器人应用Deepstream ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录在机器人应用Deepstream技术组件工具技术 NVIDIA DeepStream SDK 为基于 AI 的视频和图像感知以及多传感器处理提供了完整的流分析工具包。 DeepStream 是 NVIDIA…

NUXT学习笔记【part1】nuxt的安装、自定义布局、路由跳转

一、NUXT概述 NUXT 是一个基于 Vue.js 的轻量级应用框架&#xff0c;可用来创建服务端渲染 (SSR) 应用&#xff0c;也可充当静态站点引擎生成静态站点应用&#xff0c;具有优雅的代码结构分层和热加载等特性。NUXT使用服务端渲染技术&#xff0c;可以获得更快的内容到达时间&a…

markdown 写微信公众号,排版交给 mdnice

mdnice 墨滴软件&#xff08; https://product.mdnice.com/ &#xff09;&#xff0c;提供了以面向微信公众号内容排版为主的辅助工具 Markdown Nice[1]&#xff0c;效果堪称完美&#xff0c;极大的提升了发布微信公众号文章的效率。 使用其在线编辑器&#xff08; https://e…

L4 Latent Variable Model

Lecture4 Latent Variable Model 在之前我们所介绍的Autoregressive Model和Flow Model中&#xff0c;讨论的都是observable的数据&#xff0c;及一切数据都是可以观测到的。这一讲主要讨论的是latent variable model&#xff0c;即有些变量我们是无法直接观测的。 Latent Va…

2022尚硅谷SSM框架跟学(六)Spring MVC基础一

2022尚硅谷SSM框架跟学 六Spring MVC基础一三、SpringMVC1.SpringMVC简介1.1什么是MVC1.2什么是SpringMVC1.3SpringMVC的特点2入门案例2.1开发环境2.2创建maven工程(1)添加web模块(2)打包方式&#xff1a;war(3)引入依赖2.3配置web.xml(1)默认配置方式(2)扩展配置方式2.4创建请…

C++封装Halcon算法动态链接库Dll补充

前面写了一篇关于C封装DLL的文章&#xff0c;这里是做一个补充。 一、关于如何配置halcon和opencv库不再多说&#xff0c;前面文章介绍的很详细。下面介绍封装新增的东西。 1.1 首先创建类function1&#xff0c;并编写function.h和function1.cpp代码。 function1.h代码 #pra…

处理任务失败附实验(RH294)

首先&#xff0c;一个任务执行失败是肯定会遇见的事情而这时候&#xff0c;就需要一个备用的计划忽略任务失败默认情况下 任务失败的时候play会终止但是&#xff0c;我们可以通过忽略失败的任务来覆盖此行文使用关键字 ignore_errors举个栗子- name: Latest version of notapkg…

《流浪地球 2》 Deepfake 小试牛刀,45+ 吴京「被」年轻,变身 21 岁小鲜肉

内容一览&#xff1a;在春节档科幻电影「流浪地球 2」中&#xff0c;主演吴京、刘德华、沙溢等人饰演的角色&#xff0c;跨越 14 年之久&#xff0c;视效团队正是借助 Deepfake de-aging 技术&#xff0c;呈现出了演员不同年龄段的容貌。 关键词&#xff1a;De-aging Deepfa…

回收租赁商城系统功能拆解13讲-分销会员

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…