【每日一题】2.LeetCode——删除有序数组中的重复项

在这里插入图片描述

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!


文章目录

  • 1. 题目描述
    • 示例1:
    • 示例 2:
    • 提示:
  • 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. 解题思路

首先数组是有序的,就说明重复的元素是相邻的。删除重复元素,实际上是将不重复的元素移动到数组的左侧(即数组前k个元素)

  1. 定义两个指针pqp用于记录不重复的元素的位置,q用于遍历数组
  2. 比较pq位置的元素是否相等。
  3. 如果相等,将q后移一位
  4. 如果不想等,将q位置的元素复制到 p + 1 位置上,q后移一位
  5. 重复上诉过程,直到 q 等于数组长度
  6. 返回 p + 1,即为新数组长度。

未命名绘图.drawio

3. 代码

class Solution {public int removeDuplicates(int[] nums) {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;}
}

运行结果:

image-20240123171806872
在这里插入图片描述

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

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

相关文章

JavaScript中的事件

&#xff11; 事件&#xff08;Event&#xff09; 事件也就是用户或者浏览器执行的某种动作&#xff0c;而JS与Html之间的交互是通过事件而来的。使用仅在事件发生时执行的**监听器&#xff08;事件处理程序&#xff09;**来订阅事件。web浏览器可以发生多种事件&#xff0c;在…

【Linux】yum本地配置

配置将来是在干什么&#xff1f; yum会根据/etc/yum.repos.d/该路径下面的配置文件&#xff0c;来构成自己的下载路径&#xff0c;&#xff08;根据OS版本&#xff0c;根据你要下载的软件&#xff09;&#xff0c;yum帮助我们下载&#xff0c;安装 一般的机器&#xff0c;内置…

10.常用统计分析方法——主成分分析和因子分析

基础知识&#xff1a; 主成分分析概念 主成分分析PCA&#xff1a;是一种数据降维的技巧&#xff0c;将大量相关变量转化为一组很少的不相关变量&#xff0c;这些无关变量称为主成分。 在特征选择方法中有一种方法是方差过滤&#xff0c;即如果一个特征的方差很小&#xff0c…

yarn的安装及使用教程

Yarn 是一个快速、可靠、安全的包管理工具&#xff0c;用于管理 JavaScript 项目的依赖项。下面是关于 Yarn 的安装和基本使用的详细教程&#xff1a; 安装 Yarn 访问 Yarn 官网 并按照指示下载适合你操作系统的安装程序。安装程序会自动安装 Yarn&#xff0c;并将其添加到系…

强化学习:MuJoCo机器人强化学习仿真入门(1)

声明&#xff1a;我们跳过mujoco环境的搭建&#xff0c;搭建环境不难&#xff0c;可自行百度 下面开始进入正题&#xff08;需要有一定的python基础与xml基础&#xff09;&#xff1a; 下面进入到建立机器人模型的部分&#xff1a; 需要先介绍URDF模型文件和导出MJCF格式 介绍完…

CNAS中兴新支点——软件测试中的非功能测试包含哪些测试内容

软件测试中的非功能测试是指对软件产品在功能之外的其他特性进行测试&#xff0c;包括性能测试、可靠性测试、安全性测试、易用性测试、可维护性测试等。 1、性能测试&#xff1a;性能测试是对软件产品在特定条件下的性能进行测试和评估。包括负载测试、强度测试、数据库容量测…

Flink中的时间和窗口(时间语义,水位线,窗口,迟到数据的处理)

目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…

Adobe XD 55.2.12.2软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; Adobe XD 55.2.12.2是一款专业级的图形界面UI/UX设计工具&#xff0c;拥有丰富的功能和强大的性能。它集成了原型设计、界面设计和交互设计等多种功能…

从0开始学习C++ 第十一课:常量

第十一课&#xff1a;常量 学习目标&#xff1a; 了解什么是常量以及为什么要使用常量。学习如何在C中定义常量。理解字面量常量、const关键字、宏定义 学习内容&#xff1a; 常量的概念 概念&#xff1a; 常量是在程序执行过程中其值不会改变的量。使用常量可以提高程序的可…

系统移植及相关介绍

一.系统移植 系统移植&#xff08;System Porting&#xff09;是将一个操作系统从一种硬件平台迁移到另一种硬件平台的过程。这个过程涉及将操作系统的内核和相关的软件组件调整和适配到新的硬件环境中。 1.嵌入式系统的特点 三低&#xff1a;功耗低 成本低 体积小 两高&am…

【蓝桥备赛】质因数个数——数论

题目链接 质因数个数 个人思路 根据算术基本定理&#xff0c;每个大于1的数都可以写成若干质数相乘的形式。因此&#xff0c;我们从小到大依次求出这个数可能存在的质因数。 参考代码 Java import java.util.Scanner;public class Main {public static void main(String[…

android 扫描某个包下的所有类

注意事项 如果在用Android Studio开发过程中&#xff0c;如果新增了类&#xff0c;扫描不到。只能把APP卸载了&#xff0c;才能扫描到。 可能是Instance Run 的影响。 后面研究一下这篇文章&#xff0c;看看能不能解决 Android 遍历Apk下的所有类文件 package com.trs.nmip.…

Goroutines 和 Channels

为了提高效率&#xff0c;有时需要两个函数一起运行。 f() // 程序会等到 f() 执行完才会执行下一步 go f() // 创建一个 goroutine 来调用 f() ,程序不等待&#xff0c;直接执行下一步1. 下述代码中主函数中的 goroutine 计算了第45个斐波那契数 package mainimport ("…

面试篇-大厂的面试流程和面试注意事项

以前找工作的时候&#xff0c;对于流程中的面试总是好奇流程走到哪一步了&#xff0c;这一轮面试有没有通过&#xff0c;后面不通过还有没有消息通知等问题。今天作为一个求职者和面试官的身份来主要讲一下大厂招聘&#xff0c;内部的面试过程以及流转的流程是什么样的以及该注…

高性能跨平台网络通信框架 HP-Socket v5.9.5

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4478351216.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v5.9.5 更新 一、主要更新 问题修复&#xff1a;由于 v5.9.4 版本升级了 KCP 导致 UDP AR…

arcgis 线要素shp数据处理

回顾 上篇写了arcgis 点shp数据处理之少数点和批量点坐标如何生成点要素&#xff0c;这个可能在做一些设计及查询中需要做的第一步。那么今天将对如何点集转线、线要素编辑数据处理做一记录。 一、工具 arcToolbox工具箱、编辑器 二、操作方法 1.点集转线 还是用上篇处理成…

哪个牌子的洗地机质量好?值得入手的洗地机

在家庭清洁方面&#xff0c;洗地机绝不是被认为的智商税。实际上&#xff0c;洗地机是一种非常实用的清洁工具&#xff0c;其最大的优点在于能够高效地协助我们清理家居环境&#xff0c;不论是在何种场景下&#xff0c;都能有效提升卫生水平。然而&#xff0c;由于市场上存在众…

eNSP学习——理解ARP及Proxy ARP

目录 名词解释 实验内容 实验目的 实验步骤 实验拓扑 配置过程 基础配置 配置静态ARP 名词解释 ARP (Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议。ARP表项可以分为动态和静态两种类型。   动态ARP是利用ARP广播报文&#xff0c;动态执行并自动进…

C# MapPath

MapPath() 方法在 ASP.NET Web 应用程序中用于将虚拟路径映射到物理文件系统的路径。它提供了一种方便的方式来获取服务器上文件或目录的实际物理路径。 使用 MapPath() 方法可以应用于多种情况&#xff0c;包括但不限于&#xff1a; 访问静态资源&#xff1a;通过将虚拟路径映…

20240123-其实投资也不难

前几天团队聚餐&#xff0c;和老板们有聊到投资这个话题&#xff0c;其中一个观点很有趣&#xff0c;说是&#xff1a;“我们的服务器用的都是阿里云的&#xff0c;然后阿里云有一个跟我们对接的工作人员&#xff0c;通过我们买机器的数量增长&#xff0c;觉得我们公司发展应该…