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

删除排序数组中的重复项--LeetCode

题目

给你一个非严格递增排列的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

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

  • 返回 k 。

思路一:

暴力

先将数组遍历一遍,在找到相同的元素时,在进行遍历把每一个数向前覆盖

class Solution {public int removeDuplicates(int[] nums) {int n = nums.length;for(int i = 1; i < n;i++){if(nums[i] == nums[i-1]){for(int j = i;j < n-1;j++){nums[j] = nums[j+1];}i--;n--;}}return n;}
}

思路二:

双指针

快指针表示遍历数组到达的下标

慢指针表示下一个不同元素要填入的下标位置

class Solution {public int removeDuplicates(int[] nums) {if(nums.length == 0)return 0;int fast = 1;int slow = 1;while(fast < nums.length){if(nums[fast] != nums[fast-1]){nums[slow] = nums[fast];slow++;}fast++;}return slow;}
}

相关文章:

  • 基于Matlab的车牌识别系统
  • 2025年3月电子学会青少年机器人技术(六级)等级考试试卷-理论综合
  • wait_event 类接口详解
  • vue3创建项目
  • 重构智能场景:艾博连携手智谱,共拓智能座舱AI应用新范式
  • STM32移植最新版FATFS
  • React在什么情况下需要用useReducer
  • 电商Redis热点数据缓存实施规划
  • 从节点重排看React 与 Vue3 的 Diff 算法
  • 1、AI及LLM基础:Python语法入门教程
  • 【Pandas】pandas DataFrame pow
  • 实时数字人——DH_LIVE
  • 使用Qt Quick Controls创建自定义日历组件
  • SCADA系统:工业自动化与智能管控的核心架构
  • 从工作到娱乐:Codigger Desktop 让桌面环境更智能
  • Java并发编程 - ReentrantLock
  • 运维打铁:Centos 7 安装 redis_exporter 1.3.5
  • Vue 3 相比 Vue 2 的优势
  • 开发 MCP Proxy(代理)也可以用 Solon AI MCP 哟!
  • Netty线上如何做性能调优?
  • 中科院新增三名副秘书长
  • 经济日报刊文:积极应对稳住外贸基本盘
  • 过敏性鼻炎,不只是“打喷嚏”那么简单
  • 著名诗人、中国城市发展研究院原常务副院长吕贵品逝世
  • 中国体育报:中国乒协新周期新起点再出发
  • 世界免疫周丨专家呼吁加快HPV疫苗纳入国家免疫规划进程