面试经典150题——删除有序数组中的重复项

面试经典150题 day3

题目来源

力扣每日一题;题序:26

我的题解

方法一 双指针

使用两个指针分别指向相同元素的左右边界,再利用一个count记录最终需要的数组长度。
时间复杂度 :O(n)
空间复杂度:O(1)

java 复制代码
public int removeDuplicates(int[] nums) {
    int left=0,right=1;
    int n=nums.length;
    if(n==1)
        return n;
    int count=0;
    while(right<n){
    	//找到相同元素的左右边界
        while(right<n&&nums[left]==nums[right])
            right++;
        //当前相同元素记录如最终的数组
        count++;
        left=right;
        right++;
        //只有left小于n时才会更新结果数组
        if(left<n)
            nums[count]=nums[left];
    }
    if(left<n)
        count++;
    return count;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐
蜂蜜黄油呀土豆20 分钟前
Redis 数据结构详解:从底层实现到应用场景
数据结构·redis·跳表·zset
Bdygsl21 分钟前
数据结构 —— 队列
数据结构
野生技术架构师21 分钟前
SpringBoot健康检查完整指南,避免线上事故
java·spring boot·后端
究极无敌暴龙战神X24 分钟前
机器学习相关
人工智能·算法·机器学习
疯狂成瘾者24 分钟前
Lombok 可以生成哪些类方法
java·tomcat·maven
于樱花森上飞舞25 分钟前
【多线程】CAS和哈希表
java·数据结构·java-ee
七夜zippoe28 分钟前
MyBatis插件开发-实现SQL执行耗时监控
java·sql·mybatis·springboot·责任链
水灵龙31 分钟前
文件管理自动化:.bat 脚本使用指南
java·服务器·数据库
lbb 小魔仙33 分钟前
【Java】Spring Cloud 微服务架构入门:五大核心组件与分布式系统搭建
java·spring cloud·架构
2501_9444417533 分钟前
Flutter&OpenHarmony商城App用户中心组件开发
java·javascript·flutter