当前位置: 首页 > news >正文

LeetCode26.删除有序数组中的重复项(双指针法)

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

  • 1.问题描述
  • 2.解题思路
  • 3.代码

1.问题描述

给你一个 非严格递增排列 的数组 nums ,请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k

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

提示:

  • 1 <= nums.length <= 3 * 104
  • -104 <= nums[i] <= 104
  • nums 已按 非严格递增 排列

2.解题思路

  1. 双指针法(快慢指针法):(和LeetCode27:移除元素方法相同)
  • 快指针:进行数组遍历
  • 慢指针:即将被赋值的位置

将目前位置与前一个位置上的数进行对比,如果一样,就移动指针去下一个位置访问下一个元素。如果不一样,赋值给慢指针。慢指针只要目前为止被填充了新值,就再向后移动一位。

3.代码

python:

class Solution:def removeDuplicates(self, nums: List[int]) -> int:# 指针 i 进行数组遍历n = len(nums)# 指针 j 指向即将被赋值的位置j = 0  #慢指针# 开始对数组进行遍历for  i in range(n): # 进行筛选if  i == 0 or  nums[i] != nums[i - 1] : # 赋值nums[j] = nums[i]# j 移动j += 1# 获取结果return j 

C++:

class Solution {
public:int removeDuplicates(vector<int>& nums) {// 指针 i 进行数组遍历int n = nums.size();// 指针 j 指向即将被赋值的位置int j = 0;// 开始对数组进行遍历for (int i = 0 ; i < n ; i++) {// 进行筛选if ( i == 0 ||  nums[i] != nums[i - 1]) {// 赋值nums[j] = nums[i];// j 移动j++;}}// 获取结果return j ;}
};

相关文章:

LeetCode26.删除有序数组中的重复项(双指针法)

LeetCode26.删除有序数组中的重复项 1.问题描述2.解题思路3.代码 1.问题描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你** 原地** 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然…...

原型网络Prototypical Network的python代码逐行解释,新手小白也可学会!!-----系列8

文章目录 前言一、原始代码二、对每一行代码的解释&#xff1a;总结 前言 这是该系列原型网络的最后一段代码及其详细解释&#xff0c;感谢各位的阅读&#xff01; 一、原始代码 if __name__ __main__:##载入数据labels_trainData, labels_testData load_data() # labels_…...

黑马点评回顾 redis实现共享session

文章目录 传统session缺点整体访问流程代码实现生成验证码登录 问题具体思路 传统session缺点 传统单体项目一般是把session存入tomcat&#xff0c;但是每个tomcat中都有一份属于自己的session,假设用户第一次访问第一台tomcat&#xff0c;并且把自己的信息存放到第一台服务器…...

Redis篇---第八篇

系列文章目录 文章目录 系列文章目录前言一、说说 Redis 哈希槽的概念?二、Redis 常见性能问题和解决方案有哪些?三、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?前言 前些天发现了一个巨牛的人工智能学习网站…...

Unity使用Visual Studio Code 调试

Unity 使用Visual Studio Code 调试C# PackageManager安装Visual Studio EditorVisual Studio Code安装Unity 插件修改Unity配置调试 PackageManager安装Visual Studio Editor 打开 Window->PackageManger卸载 Visual Studio Code Editor &#xff0c;这个已经被官方废弃安…...

【Linux】进程替换|exec系列函数

文章目录 一、看一看单进程版的进程替换二、进程替换的原理三、多进程版——验证各种程序替换接口exec系列函数execlexeclpexecvexecvp tipsexecleexecve 四、总结 一、看一看单进程版的进程替换 #include<stdio.h> #include<unistd.h> #include<stdlib.h>i…...

Java编程技巧:将图片导出成pdf文件

目录 一、pom依赖二、代码三、测试链接 一、pom依赖 <!-- pdf插件 start --> <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.3</version> </dependency> <dependency…...

二项分布和泊松分布

一、二项分布 1.1 n重伯努利试验 若是二项分布&#xff0c;则必是n重伯努利试验概型。即&#xff1a;每次试验只有两种结果 与 &#xff0c;且在每次试验中A发生的概率相等&#xff0c;即P(A)p&#xff0c;将这种试验独立重复n次&#xff0c;则称这种试验为n重伯努利试验&#…...

【飞控调试】DJIF450机架+Pixhawk6c mini+v1.13.3固件+好盈Platinium 40A电调无人机调试

1 背景 由于使用了一种新的航电设备组合&#xff0c;在调试无人机起飞的时候遇到了之前没有遇到的问题。之前用的飞控&#xff08;Pixhawk 6c&#xff09;和电调&#xff08;Hobbywing X-Rotor 40A&#xff09;&#xff0c;在QGC里按默认参数配置来基本就能平稳飞行&#xff0…...

Android studio配置Flutter开发环境报错问题解决

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家 &#x1f449;点击跳转到教程 报错问题截图 报错原因已经给出&#xff1a; You need Java 11 or higher to build your app with this version of G…...

2023.11.18 -自用hadoop高可用环境搭建命令

启动hadoop高可用环境 # 1.先恢复快照到高可用环境 # 2.三台服务器启动zookeeper服务 [rootnode1 ~]# zkServer.sh start [rootnode2 ~]# zkServer.sh start [rootnode3 ~]# zkServer.sh start 查看服务状态: [rootnode]# zkServer.sh status 关闭zk服务的命令是: [rootnode]# …...

【Linux】常用系统工作命令

一、Linux文档目录结构 在Linux系统中&#xff0c;目录、字符设备、套接字、硬盘、光驱、打印机等都被抽象成文件形式&#xff0c;“Linux系统中一切都是文件”。Linux系统中的一切文件都是从"根"目录&#xff08;/&#xff09;开始的&#xff0c;并按照文件系统层次…...

深入理解网络协议:通信世界的基石

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在当今数字化时代&#xff0c;网络协议是连接世…...

PL/SQL编程

一、Oracle常用函数 concat&#xff1a;用于连接两个字符串。 CONCAT(Oraok, .com) -- Result: Oraok.com ceil&#xff1a;小数点向上取整。 secect ceil(7.3) from dual --Result: 8 dual表是oracle系统为计算设计的一张临时表 select sysdate as 系统日期 from dual…...

Prompt提示词——什么是CRISPE框架?QCIPSPE框架?

框架介绍 【CRISPE】框架 是由 Matt Nigh 提出并发布的提示词书写框架&#xff0c;共由五部分组成。 这个框架&#xff08;CRISPE&#xff09;主要包括五个部分&#xff0c;用于指导用户向ChatGPT提问。首先&#xff0c;通过设定ChatGPT的角色&#xff08;Capacity and Role&…...

Nginx的核心配置文件

Nginx的核心配置文件 学习Nginx首先需要对它的核心配置文件有一定的认识&#xff0c;这个文件位于Nginx的安装目录/usr/local/nginx/conf目录下&#xff0c;名字为nginx.conf 详细配置&#xff0c;可以参考resources目录下的<<nginx配置中文详解.conf>> Nginx的核…...

Java,集合框架,关于Collection接口(子接口List和Set)

目录 数组储存多个数据方面的特点&#xff1a; Java集合框架体系&#xff1a;&#xff08;Java.util包下&#xff09; Collection接口中的方法测试&#xff1a; 迭代器&#xff08;Iterator&#xff09;的作用&#xff1a;用来遍历集合元素。 增强for循环&#xff08;即for…...

已安装的nginx追加ssl模块

Nginx开启SSL模块1 切换到源码包&#xff1a; cd /usr/local/src/nginx-1.11.3 2 查看nginx原有的模块 /usr/local/nginx/sbin/nginx -V 在configure arguments:后面显示的原有的configure参数如下&#xff1a; –prefix/usr/local/nginx --with-http_stub_status_module …...

大语言模型|人工智能领域中备受关注的技术

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️其他领域】 文章目录 前言关于大语言模型大语言模型是什么&#xff1f;大语言模型有什么用?文案写作知识库回答文本分类代码生成 AWS 如何通过 LLM 提供帮助&#xff1f;Amazon BedrockAmazon SageM…...

Docker之DockerFile解析

DockerFile解析 是什么 Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本。 概述 官网 https://docs.docker.com/engine/reference/builder/ 构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运…...

06_Cursor之上下文管理与代码库理解

关键字&#xff1a;上下文管理, 代码库理解, 符号引用, Git集成, 图像上下文, Cursor 06_Cursor之上下文管理与代码库理解 Cursor知识体系 Cursor知识体系&#xff08;续&#xff09; | -- 上下文管理层 | -- 代码库级理解 | | -- 项目结构分析 | | -- 依赖关系追…...

Vue2项目里用Cesium加载天地图标注,保姆级避坑指南(含Token申请)

Vue2项目集成Cesium与天地图标注的工程化实践指南 当WebGIS需求遇上Vue技术栈&#xff0c;如何在老项目中优雅地引入三维地图能力&#xff1f;本文将以工程化视角&#xff0c;系统讲解Vue2项目中集成Cesium加载天地图标注的完整技术路径。不同于基础教程&#xff0c;我们将重点…...

OpenClaw与Qwen3-14b_int4_awq联动:低成本实现个人自动化办公

OpenClaw与Qwen3-14b_int4_awq联动&#xff1a;低成本实现个人自动化办公 1. 为什么选择OpenClawQwen3-14b_int4_awq组合 去年夏天&#xff0c;当我第一次尝试用AI自动化处理周报时&#xff0c;发现商业API的token消耗速度远超预期——生成5份周报就花掉了近50元。这促使我开…...

Mac开发者必备:OpenClaw联动千问3.5-27B实现代码审查自动化

Mac开发者必备&#xff1a;OpenClaw联动千问3.5-27B实现代码审查自动化 1. 为什么需要代码审查自动化&#xff1f; 作为独立开发者&#xff0c;我经常面临一个尴尬局面&#xff1a;在深夜提交代码后&#xff0c;第二天才发现引入了低级语法错误或潜在漏洞。传统CI工具虽然能捕…...

AI爆款!官方定名!“Token”变身“词元”,10个token=10个AI点数?这才是它真正的含义!

Token 最近&#xff0c;一个原本只在技术圈流传的词&#xff0c;突然迎来正式“官宣”—— Token的中文名被官方确定为&#xff1a;词元。 这个你可能天天听、却从没认真探究过的词&#xff0c;正在变成大众的“通用语言”。 但很多人不知道&#xff0c;Token并不是AI时代的新词…...

从SAP实施到微信上线:一文读懂不同类型软件公司的实施岗到底有啥区别

从SAP实施到微信上线&#xff1a;一文读懂不同类型软件公司的实施岗核心差异 刚入行的技术新人小张最近很困惑&#xff1a;同样是"软件实施工程师"岗位&#xff0c;为什么招聘JD里有的要求精通SAP模块配置&#xff0c;有的却强调微信生态部署经验&#xff1f;在面试了…...

Naive UI 主题色定制实战:从组件覆盖到全局配置

1. 为什么需要定制Naive UI主题色&#xff1f; 当你使用Naive UI开发项目时&#xff0c;默认的绿色主题可能并不符合你的品牌风格。比如我们团队最近接手的一个金融类项目&#xff0c;客户要求整体UI采用深蓝色调&#xff0c;这时候就需要对Naive UI的主题色进行深度定制。主题…...

实在Agent适合什么规模的企业使用?深度解析企业级AI Agent适配逻辑与落地边界

随着2026年企业数字化转型进入深水区&#xff0c;AI Agent&#xff08;人工智能体&#xff09;已不再仅仅是实验室里的原型&#xff0c;而是演变为推动企业智能自动化的核心引擎。在当前“大模型落地”的浪潮下&#xff0c;许多企业管理者都在思考一个核心问题&#xff1a;像实…...

AI 焦虑别乱投!3 个问题秒懂要不要养「虾」

作者 | 张辉清 责编 | 梦依丹出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09;当下 AI 热度居高不下&#xff0c;企业该如何抉择&#xff1f;是大举投入布局&#xff0c;还是保持观望&#xff1f;我们借以下三个问题来展开思考。AI 当下处在什么阶段&#xf…...

别再死记硬背了!用FFmpeg实战拆解H.264码流,手把手教你读懂NALU头

从字节到画面&#xff1a;FFmpeg实战解析H.264码流中的NALU奥秘 当你用手机观看一段高清视频时&#xff0c;每秒25帧的画面流畅切换背后&#xff0c;是H.264编码算法在默默工作。但你是否好奇过&#xff0c;这些压缩后的数据究竟如何组织&#xff1f;今天我们将用FFmpeg这把&qu…...