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

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

相关推荐
Lyyaoo.28 分钟前
【JAVA基础面经】JVM的内存模型
java·开发语言·jvm
杨凯凡29 分钟前
【017】泛型与通配符:API 设计里怎么用省心
java·开发语言
IT利刃出鞘36 分钟前
Spring工具类--ObjectUtils的使用
java·后端·spring
MY_TEUCK7 小时前
Sealos 平台部署实战指南:结合 Cursor 与版本发布流程
java·人工智能·学习·aigc
三毛的二哥7 小时前
BEV:典型BEV算法总结
人工智能·算法·计算机视觉·3d
我爱cope7 小时前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
南宫萧幕8 小时前
自控PID+MATLAB仿真+混动P0/P1/P2/P3/P4构型
算法·机器学习·matlab·simulink·控制·pid
朝新_8 小时前
【Spring AI 】图像与语音模型实战
java·人工智能·spring
RH2312118 小时前
2026.4.16Linux 管道
java·linux·服务器
测试19988 小时前
2026最新软件测试面试八股文【附文档】
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例