面试经典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;
}

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

相关推荐
避避风港8 分钟前
Java 抽象类
java·开发语言·python
初学小白...11 分钟前
JVM入门知识点
java·服务器·jvm
C++chaofan19 分钟前
基于session实现短信登录
java·spring boot·redis·mybatis·拦截器·session
牛客企业服务20 分钟前
2025年AI面试防作弊指南:技术笔试如何识别异常行为
人工智能·面试·职场和发展
what_201820 分钟前
list集合使用
数据结构·算法·list
摇滚侠20 分钟前
idea 刷新maven,提示java.lang.RuntimeException: java.lang.OutOfMemoryError
java·maven·intellij-idea
果壳~31 分钟前
【Java】使用国密2,3,4.仿照https 统一请求响应加解密
java·https
hetao173383743 分钟前
2025-11-13~14 hetao1733837的刷题记录
c++·算法
N 年 后44 分钟前
单独Docker部署和Docker Compose部署
java·docker·容器
hansang_IR1 小时前
【题解】洛谷 P2476 [SCOI2008] 着色方案 [记搜]
c++·算法·记忆化搜索