【力扣每日一题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;
    }

}

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

相关推荐
Sarvartha1 分钟前
数组基础知识
java·开发语言
南笙北梦6 分钟前
从零写一个CAD 02:实体容器、Esc取消与键盘失灵的排查
python
yexianglunbai7 分钟前
Redis 详解:从核心数据结构到高可用架构实战
数据结构
旋生万物8 分钟前
Agent System Prompt 注入螺旋公理:让 AI 推理不跑偏的可复制模板(附完整 Prompt)
人工智能·算法
泡海椒9 分钟前
金融报表开发:jquick-pdf K 线图 PDF 可视化解决方案
java·开发语言·金融·pdf
余槐i19 分钟前
rollbackFor 不设置,Checked 异常不回滚:Spring 默认规则与两行修复的取舍
java·spring boot·后端·spring·事务管理
深圳雨林凯AI23 分钟前
图案裂变的空间关系原理:元素放大为何必然挤压负空间,以及三个可调变量|雨林凯AI技术拆解
人工智能·算法
❀͜͡傀儡师27 分钟前
Spring AI 集成 TypeSafe:用判断模型处理工单分流与链路决策
java·人工智能·spring
硫酸锌0127 分钟前
在手机上运行Python增量备份手机数据到PC电脑
android·windows·python
bro_Java66629 分钟前
《栈与队列:数据结构的“双生花”》
java·数据结构·编辑器