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

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

相关推荐
X***C8621 分钟前
JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
java·tomcat
2301_807997381 分钟前
代码随想录-day56
算法
AI科技星9 分钟前
时空运动的几何约束:张祥前统一场论中圆柱螺旋运动光速不变性的严格数学证明与物理诠释
服务器·数据结构·人工智能·python·科技·算法·生活
阿宁又菜又爱玩9 分钟前
Mybatis学习
java·学习·mybatis
幽络源小助理9 分钟前
《已调试》SpringBoot景区寄存管理系统源码 - 免费JavaWeb项目下载 | 幽络源
java·开发语言·spring boot
脸大是真的好~11 分钟前
尚硅谷-索引优化以及查询优化
java
豆沙沙包?13 分钟前
2025年--Lc302-415. 字符串相加--java版
java·开发语言
天涯路s14 分钟前
qt怎么将模块注册成插件
java·服务器·前端·qt
Unstoppable2214 分钟前
八股训练营第 37 天 | Java 内存区域有哪些部分?介绍一下什么是强引用、软引用、弱引用、虚引用?有哪些垃圾回收算法?有哪些垃圾回收器?
java·jvm·八股
JIngJaneIL14 分钟前
基于Java民宿管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot