【力扣每日一题02】数组篇--删除有序数组中的重复项

一、题目

给你一个 升序排列 的数组 nums

请你原地删除重复出现的元素,使每个元素 只出现一次

返回删除后数组的新长度。

元素的 相对顺序 应该保持 一致

然后返回 nums 中唯一元素的个数。

二、思路解析

这道题要用到 "双指针" 的概念,这也是我第一次接触。

很不幸,这道题我又不会做,也是看了答案之后,才悟出来的。

下面是我看完答案后,自己的思考过程:

想要数组元素不重复出现,那就可以用两个指针来遍历数组。

一个快指针,遍历得快,能够更快发现重复的元素;

另一个慢指针用来接受那些不重复的元素。

最后返回慢指针即可。

还有一点要注意的,就是要使用 If 语句进行分类讨论,比如 nums.length == 0 的情况,数组没有元素,这时候则应该返回 0 。

三、完整代码

复制代码
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-1]!=nums[fast]){
                nums[slow]=nums[fast];
                slow++;
            }
            fast++;
        }
        return slow;
    }

}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

相关推荐
心中有国也有家18 分钟前
hccl 架构拆解:昇腾集合通信库到底在做什么?
人工智能·经验分享·笔记·分布式·算法·架构
罗超驿35 分钟前
22.深入剖析JDBC架构:从原生API到企业级数据交互核心
java·数据库·mysql·面试
一直有一个ac的梦想44 分钟前
cmu15445 2025fall lec 18 transactions with two-phase lock
java·开发语言·数据库
九皇叔叔44 分钟前
Spring-Ai-Alibaba [04] 04-llm-platform-custom-demo
java·人工智能·spring
技术路上的探险家1 小时前
Sa-Token 单点登录(SSO)三种模式大白话详解:告别重复登录
java·sa-token·单点登录·sso
小O的算法实验室1 小时前
2026年MCS,Q-learning增强MOPSO与改进DWA融合算法+复杂三维地形下特定移动机器人动态路径规划
算法
毋语天1 小时前
FastAPI 进阶实战:请求体、文件上传、响应模型与数据校验
python·fastapi·api开发·数据校验·pydantic
JAVA社区1 小时前
Java进阶全套教程(四)—— SpringMVC框架详解
java·开发语言·spring·面试·职场和发展
ㄣ知冷煖★1 小时前
统一网关架构实践:从 Token 鉴权到路由、策略与凭证池转发全链路解析
java·服务器·架构
Lumbrologist1 小时前
【C++】零基础入门 · 第 2 节:变量、基本数据类型与输入输出
java·开发语言·c++