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

}

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

相关推荐
小光学长几秒前
ssm农民养殖经验交流与分享平台bc046578(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring
夏乌_Wx1 分钟前
练题100天——DAY25:升序合并文件+相交链表+多数元素
数据结构·算法·哈希算法
E***U9452 分钟前
Java 校招 / 社招:Spring Boot 项目实战指南
java·开发语言·spring boot
在坚持一下我可没意见2 分钟前
Spring 开发小白学习过程中常用通用配置文件,即拿即用!(持续更新中)
java·数据库·后端·学习·spring·tomcat·mybatis
南_山无梅落3 分钟前
8.Python3字典(dict):键值的增删改查_入门到进阶
python·算法
爱尔兰极光3 分钟前
Python--常量和变量
开发语言·python
柯南二号7 分钟前
【后端】【Java】《Spring Boot 统一接口耗时统计实践:基于 HandlerInterceptor 的工程级方案》
java·开发语言·数据库
柒.梧.7 分钟前
数据结构:二叉排序树,平衡二叉树,红黑树的介绍
数据结构·算法
m0_740043738 分钟前
SpringBoot03-Mybatis框架入门
java·数据库·spring boot·sql·spring·mybatis
黑客思维者9 分钟前
Python modbus-tk在配电物联网边缘网关的应用
开发语言·python·物联网