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

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

相关推荐
wen__xvn2 分钟前
模拟题刷题2
算法
AI 菌2 分钟前
DeepSeek-OCR 解读
人工智能·算法·计算机视觉·大模型·ocr
94甘蓝9 分钟前
第 5 篇 Spring AI - Tool Calling 全面解析:从基础到高级应用
java·人工智能·函数调用·工具调用·spring ai·tool calling
历程里程碑19 分钟前
Linux 5 目录权限与粘滞位详解
linux·运维·服务器·数据结构·python·算法·tornado
酉鬼女又兒23 分钟前
SQL113+114 更新记录(一)(二)+更新数据知识总结
java·服务器·前端
yi.Ist27 分钟前
关于若干基础的几何问题
c++·学习·算法·计算几何
毅炼1 小时前
Netty 常见问题总结
java·网络·数据结构·算法·哈希算法
Anastasiozzzz1 小时前
leetcodehot100--最小栈 MinStack
java·javascript·算法
Sylvia-girl1 小时前
线程的死锁【了解】
java·开发语言·jvm
历程里程碑1 小时前
双指针2--盛水最多的容器
大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎·散列表