删除有重复数组的重复项1-2

文章目录

  • 1、描述
  • 2、关键字
  • 3、思路
  • 4、notes
  • 5、复杂度
  • 6、code

1、描述

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
返回 k 。
题目1链接

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

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

2、关键字

重复元素,原地,一次,二次

3、思路

快慢指针

4、notes

因为只有不重复的需要拷贝,所以在分类的时候就写if(cur != nums[k])写需要拷贝的情况。

因为题目二允许最多出现2次,所以可以在相等的情况下也存在拷贝的情况,所以写if(cur==nums[k])
为了拓展性count记录一次两次三次,

5、复杂度

时间O(N)
空间O(1)原地

6、code

题目1,元素只能出现1class Solution {
public:int removeDuplicates(vector<int>& nums) {int k = 0;for(int i = 1; i < nums.size(); i++) {if(nums[k] != nums[i]) {  // 需要拷贝的情况(需要特殊处理,所以写这种情况)k++;nums[k] = nums[i];}}return k + 1;}
};题目二:允许出现2class Solution {
public:int removeDuplicates(vector<int>& nums) {int k = 0;int cur = nums[0];int count = 1;     // 记录出现重复数字的个数,for (int i = 1; i < nums.size(); i++) {cur = nums[i];if (nums[k] == cur ) {  // 第一因素,是否与res最后一个元素相等count++;if (count < 3) { // 第二因素,如果相等,且数量不大于2,也要拷贝k++;nums[k] = cur;  }  }else {  // 不相等直接拷贝k++;nums[k] = cur;count = 1;}}return k+1;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么做成的文件二维码?扫阅览文件的制作方法

现在用二维码来分享或者查看文件是一种很常用的方式&#xff0c;比如常见的文件内容有简历、资料、作品、压缩包等等。通过将文件生成二维码能够在提升文件传输速度的同时还有利于用户体验的提升&#xff0c;那么如何制作可以长期提供文件预览或者下载的二维码呢&#xff1f; …

国家域名后缀有哪些?

国家域名后缀&#xff0c;也称为国家顶级域名(ccTLDs)&#xff0c;是互联网域名系统(DNS)中代表特定国家或地区的顶级域名。每个国家或地区都有自己的国家域名后缀&#xff0c;如.US代表美国&#xff0c;.CN代表中国&#xff0c;.UK代表英国等。这些域名后缀不仅有助于用户识别…

你好rust

第一次安装rust&#xff0c;记录一下笔记。 几年前就听说过rust&#xff0c;自己一直是个c爱好者&#xff0c;所以比较抵触rust&#xff0c;早年还有什么rust向上突破群。一直比较抵触&#xff0c;直到这几年rust已经渐渐深入到linux内核、云原生可观测以及zend社区当中&#x…

SAR复数图像

本篇文章讲讲SAR图像的一些特征&#xff1a; SAR图像是由行列像素组成的二维矩阵&#xff0c;其中每一个像素代表了地球表面上的一小块区域&#xff0c;其尺寸仅依赖于SAR系统的指标。每个像素点包含一个复数(幅度及相位)&#xff0c;该数值与SAR分辨单元内全部散射提的反射率总…

【Redis实战篇】redis的擅长实现的功能

&#x1f525;作者主页&#xff1a;小林同学的学习笔录 &#x1f525;小林同学的专栏&#xff1a;JAVA之基础专栏 【Redis实战篇】Redis有可能出现的问题以及如何解决问题_redis实现用户登录可能造成哪些问题-CSDN博客 本文接上面的文章 目录 2.优惠券秒杀 2.1 全局唯一ID 2.…

Java Streams API:8个高效处理集合的实用技巧

引言 在日常的Java编程中&#xff0c;处理集合数据是一项常见任务。Java Streams API 提供了一系列强大的工具&#xff0c;可以帮助我们以声明式的方式处理集合&#xff0c;提高代码的可读性和效率。以下是8个你应该掌握的实用Java Streams API技巧&#xff0c;让你的代码更加…

C++ 强制类型转换总结

C 强制类型转换总结 简介static_cast介绍场景示例 dynamic_cast介绍场景示例 const_cast介绍示例 reinterpret_cast介绍特点示例 简介 在开发时候&#xff0c;对强制类型转换经常感觉很迷糊&#xff0c;什么场景用哪个没有一个确切的认识&#xff0c;因此借着这个机会好好总结…

新办理北京广播电视节目制作许可证需要什么条件

在北京想要从事广播电视节目制作&#xff0c;那就需要企业拥有广播电视节目制作经营许可证。此许可证不仅是企业合法经营的基础&#xff0c;同时也是保障节目制作质量和内容合规的标志。如何办理&#xff0c;详情致电咨询我或者来公司面谈。 北京广播电视节目制作经营许可证申请…

<tbody>出现滚动条后,同<thead>对不齐的解决方案

需求是需要表格滚动&#xff0c;并且表头不动 <table classtable-style><thead>表头部分</thead><tbody>表体部分</tbody> </table><style>.table-style {width: 100%;border: 1px solid silver; /* 有边框 */border-collapse: col…

Web前端精通教程:深入探索与实战指南

Web前端精通教程&#xff1a;深入探索与实战指南 在数字化时代&#xff0c;Web前端技术已经成为构建优秀用户体验的基石。想要精通Web前端&#xff0c;不仅需要掌握扎实的基础知识&#xff0c;还需要具备丰富的实战经验和深入的思考。本文将从四个方面、五个方面、六个方面和七…

访问jlesage/firefox镜像创建的容器中文乱码问题

目录 介绍总结 介绍 最近在使用jlesage/firefox镜像创建容器的时候&#xff0c;发现远程管理家里网络的时候中文会出现乱码&#xff0c;导致整个体验非常的不好&#xff0c;网上查找资料说只要设置环境变量ENABLE_CJK_FONT1 就可以解决问题&#xff0c;抱着试一试的态度还真的成…

「网络原理」IP 协议

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;计网 &#x1f387;欢迎点赞收藏加关注哦&#xff01; IP 协议 &#x1f349;报头结构&#x1f349;地址管理&#x1f34c;动态分配 IP 地址&#x1f34c;NAT 机制&#xff08;网络地址映射&am…

示例:WPF中应用DataGrid读取实体DisplayAttribute特性自动自动生成列名

一、目的&#xff1a;通过重写DataGrid的OnAutoGeneratingColumn方法实现根据定义特性自动生成列头信息功能 二、实现 <DataGrid ItemsSource"{local:GetStudents Count50}"/>实体定义如下 public class Student{[DataGridColumn("*")][Display(Na…

iOS18那些隐藏有趣的新功能分享!

WWDC 2024开幕式结束后&#xff0c;苹果迅速向开发者推送了iOS 18的首个测试版更新。很多果粉和小编一样&#xff0c;第一时间进行了升级。 自定义应用图标位置和颜色、应用锁、隐藏图标、全新控制中心、新增密码应用以及照片重新排版等新功能都表现出色。这些明面上的新功能大…

java.lang.ClassCastException的java类型转换异常解决方案

一、问题描述 在系统中应用了spring的Cacheable注解功能&#xff0c;首次请求方法没问题&#xff0c;但在二次加载中&#xff0c;会抛出类转换异常&#xff0c;根本原因是&#xff1a;同一个类的加载类不同&#xff0c;既&#xff1a;applicationClassLoader 和 RestartClassL…

ncnn 和 rknn 自定义算子对比实现

你提供了两种实现自定义 Sigmoid 算子的代码。第一种是使用NCNN 并行化的实现,第二种是一个自定义算子函数用于 RKNN(Rockchip Neural Network)的实现。下面我将详细解释这两种实现,并提供一些优化建议。 实现 1:使用NCNN 并行化实现的 Sigmoid 算子 int Sigmoid::forwa…

rxjava 3.0 BehaviorProcessor底层源代码分析

这段代码是 RxJava 中 BehaviorProcessor 类的实现&#xff0c;它是一个特殊的处理器&#xff08;Processor&#xff09;&#xff0c;可以缓存并向新的订阅者发出最后一个观察到的项以及所有后续的项。以下是对该类的详细分析&#xff1a; 类的结构和字段 字段 subscribers: 存…

Python中的np.setdiff1d()函数

Python中的np.setdiff1d()函数可用于找出两个序列集合中元素的差异 API及参数说明如下&#xff1a; np.setdiff1d(ar1,ar2,assume_unique)&#xff1a;找出序列1在序列2中的差异&#xff0c;并返回序列1中不在序列2中的元素 ar1&#xff1a;输入数组ar2&#xff1a;输入比较…

网络安全等级保护制度详解,一文掌握核心要点!

一、等级保护制度发展情况 等级保护制度的法律依据 《计算机信息系统安全保护条例》&#xff08;1994年General Office of the State Council第147号令&#xff09; 公安部主管全国计算机信息系统安全保护工作。 计算机信息系统实行安全等级保护&#xff0c;安全等级的划分…

目录文件管理

文章目录 Linux目录结构树形目录结构根目录常见的子目录子目录的作用 查看及检索文件查看文件内容cat格式 more格式操作方法 less格式操作方法 head格式 tail格式 统计文件内容wc格式选项 检索和过滤文件内容grep格式选项查找条件 备份及恢复文档压缩命令gzip bzip2格式压缩解压…