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

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

相关推荐
颜酱2 分钟前
队列练习系列:从基础到进阶的完整实现
javascript·后端·算法
用户5757303346247 分钟前
两数之和:从 JSON 对象到 Map,大厂面试官到底在考察什么?
算法
程序猿追12 分钟前
“马”上行动:手把手教你基于灵珠平台打造春节“全能数字管家”
算法
不会敲代码122 分钟前
防抖与节流:从输入框看性能优化
前端·javascript·面试
不会敲代码126 分钟前
React Hooks 进阶:useRef 核心用法与受控/非受控组件实战解析
前端·react.js·面试
Seven972 小时前
Condition底层机制剖析:多线程等待与通知机制
java
怒放吧德德11 小时前
Spring Boot 实战:RSA+AES 接口全链路加解密(防篡改 / 防重放)
java·spring boot·后端
郑州光合科技余经理15 小时前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
大大水瓶16 小时前
Tomcat
java·tomcat
dustcell.16 小时前
haproxy七层代理
java·开发语言·前端