【Leetcode】80. Remove Duplicates from Sorted Array II

news/2024/7/4 8:25:01

题目地址:

https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
给定一个长 n n n的数组 A A A,重复的元素只保留两个,要求返回去重后的数组长度,并且原地去重。

维护一个合法的前缀,每次枚举 A [ i ] A[i] A[i]的时候,看一下 A [ i ] A[i] A[i]在这个前缀里出现了多少次,如果出现次数小于 2 2 2就加进去,否则略过。代码如下:

class Solution {
 public:
  int removeDuplicates(vector<int>& A) {
    int j = 0;
    for (int i = 0; i < A.size(); i++) {
      if (j < 2 || A[i] > A[j - 1] || A[i] > A[j - 2]) A[j++] = A[i];
    }

    return j;
  }
};

时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)


http://www.niftyadmin.cn/n/3647502.html

相关文章

RocketMQ生产部署架构设计,Java岗

分布式事务 随着互联网快速发展&#xff0c;微服务&#xff0c;SOA 等服务架构模式正在被大规模的使用&#xff0c;现在分布式系统一般由多个独立的子系统组成&#xff0c;多个子系统通过网络通信互相协作配合完成各个功能。 有很多用例会跨多个子系统才能完成&#xff0c;比…

Python(私有变量)类中的特殊方法

原帖地址&#xff1a;http://www.devfront.com:8080/?qnode/199Python学习备忘录Wed, 2006-10-11 08:14 — Marchday类中的特殊方法一般说来&#xff0c;特殊的方法都被用来模仿某个行为。例如&#xff0c;如果你想要为你的类使用x[key]这样的索引操作&#xff08;就像列表和元…

【Leetcode】442. Find All Duplicates in an Array

题目地址&#xff1a; https://leetcode.com/problems/find-all-duplicates-in-an-array/ 给定一个长nnn的int数组&#xff0c;其中每个数字都属于1∼n1\sim n1∼n&#xff0c;其中有些数字出现一次&#xff0c;有些两次。返回那些出现过两次的数。 基本思路是&#xff0c;边…

游戏元素设计与当代艺术变迁

商务时间 5月26日论当代艺术收藏到底是“蛋糕”还是“泡沫”当代艺术收藏家、投资家&#xff0c;选择古玩还是当代艺术&#xff1f;申明&#xff1a; 本人非专业的游戏策划&#xff0c;也不是专业的市场企划。只是有一颗心&#xff0c;用心去做事&#xff0c;做一件不同感受的事…

Spring-MVC万字长文笔记,威力加强版

接口概述: 接口是Java语言中的一种引用类型&#xff0c;是方法的"集合"&#xff0c;所以接口的内部主要就是定义方法&#xff0c;包含常量,抽象方法&#xff08;JDK 7及以前&#xff09;&#xff0c;额外增加默认方法和静态方法&#xff08;JDK 8&#xff09;,额外增…

【Leetcode】56. Merge Intervals

题目地址&#xff1a; https://leetcode.com/problems/merge-intervals/ 给定一列区间&#xff0c;合并完成后返回。 法1&#xff1a;排序后逐个merge。先将区间按照左端点排序&#xff0c;如果左端点相等就右端点小的在前面&#xff0c;然后从左到右扫描这些区间。每次扫描…

SpringBoot:四年Java面试遇到的问题整理,已拿到offer

前言 今天逛论坛&#xff0c;看到了一位35岁的老程序员发的博文&#xff0c;看完内容后我又活了&#xff0c;35岁挑战华为社招&#xff0c;竟然凭实力在半个月内经历4轮面试后成功拿到了offer,不得不佩服这位大哥&#xff0c;35岁还这么强我们这些后辈还怕啥&#xff01; 当然…

图片镂空算法集合[图]

在开发界面及棋牌游戏过程中&#xff0c;需要很多镂空的图片,而且图片形式一般比较固定.所以封装了几种常见的镂空方法.1. 用于没有掩码图,只有指定透明色,不进行伸缩voidDrawTransBitmap( HDC hdcDest, //目标DCintnXOriginDest, //目标X偏移intnYOriginDest…