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

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

相关推荐
Molesidy2 分钟前
【Embedded Development】嵌入式面试问题汇总(仅供参考)
面试·职场和发展
动感小麦兜6 分钟前
NAS学习
java·开发语言·eureka
吃着火锅x唱着歌11 分钟前
LeetCode 3583.统计特殊三元组
算法·leetcode·职场和发展
FPGA_无线通信15 分钟前
OFDM 频偏补偿和相位跟踪(2)
算法·fpga开发
小安同学iter22 分钟前
天机学堂day05
java·开发语言·spring boot·分布式·后端·spring cloud·微服务
那我掉的头发算什么22 分钟前
【javaEE】文件&IO--文件内容操作
java·java-ee·文件·文件操作
SHOJYS28 分钟前
思维难度较大 贪心优化背包 [USACO22DEC] Bribing Friends G
数据结构·算法·深度优先
啊董dong29 分钟前
课后作业-2025年12月07号作业
数据结构·c++·算法·深度优先·noi
yaoxin52112330 分钟前
262. Java 集合 - Java 中 ArrayList 与 LinkedList 读取元素性能大对决
java·开发语言
大迪吃小迪36 分钟前
Vert.x 常见问题精简总结
java·websocket·web