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

题目

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

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

思路

代码

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)

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 11:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 11:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 11:20:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 11:20:03       20 阅读

热门阅读

  1. 开发K8S Operator

    2024-03-16 11:20:03       18 阅读
  2. LeetCode 174.地下城游戏 Python题解

    2024-03-16 11:20:03       20 阅读
  3. 探索机器学习:智能时代的魔法

    2024-03-16 11:20:03       23 阅读
  4. Github 2024-03-13 C开源项目日报 Top10

    2024-03-16 11:20:03       17 阅读
  5. Python 算法交易实验68 回测对象重构

    2024-03-16 11:20:03       24 阅读
  6. HTML前置基础

    2024-03-16 11:20:03       19 阅读
  7. 00342第一章 概述 思考题和练习题(C语言)

    2024-03-16 11:20:03       18 阅读
  8. ES清理索引镜像

    2024-03-16 11:20:03       18 阅读
  9. 在Pod中使用Golang构建并推送镜像到镜像仓库

    2024-03-16 11:20:03       20 阅读
  10. Golang常用web框架

    2024-03-16 11:20:03       21 阅读