LeetCode 面试经典150题 80.删除有序数组中的重复项II

题目

给你一个有序数组 nums ,请你**原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

思路

代码

java 复制代码
class Solution {
    public int removeDuplicates(int[] nums) {
        int k = 2; // 保留位数
        int j = k - 1;  // 始终指向结果数组的最后一个位置
        for (int i = k; i < nums.length; i++) {
            // 注意和谁比较   j-k+1
            if (nums[j - k + 1] != nums[i]) {
                nums[++j] = nums[i];
            }
        }
        return j + 1;
    }
}

性能:时间复杂度 O(n) 空间复杂度O(1)

相关推荐
YGGP6 分钟前
【Golang】LeetCode 206. 反转链表
leetcode·链表·golang
hk112415 分钟前
【Algo/Forensics】2026年度无损压缩算法与高阶网络取证基准索引 (Benchmark Index)
大数据·算法·网络安全·系统架构·数据集
YGGP17 分钟前
【Golang】LeetCode 142. 环状链表 II
leetcode·链表·golang
CoovallyAIHub23 分钟前
2026计算机视觉如何将海量图像数据转化为商业价值与竞争优势?边缘计算?多模态AI?合成数据?
深度学习·算法·计算机视觉
技术狂人16823 分钟前
(三)模型微调技术 20 题!LoRA/Q-LoRA/PPO/DPO 落地细节,面试说清微调全流程(实战篇)
人工智能·深度学习·算法·nlp
hetao173383723 分钟前
2026-01-03 水水的省选模拟赛 Day 1 hetao1733837 的刷题记录
c++·笔记·算法
好想写博客24 分钟前
[动态规划]斐波那契数列
c++·算法·leetcode·动态规划
xiaoxue..26 分钟前
React 之 自定义 Hooks
前端·javascript·react.js·面试·前端框架
闻缺陷则喜何志丹33 分钟前
【二分查找】P9822 [ICPC2020 Shanghai R] Walker【有误差】|普及
开发语言·算法·r语言
橘颂TA34 分钟前
【剑斩OFFER】算法的暴力美学——K 个一组翻转链表
c++·算法·力扣·结构与算法