day5.12 leetcode80 删除有序数组重复项

删除有序数组重复项

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

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

这是一道典型的双指针题,一个指针count指向结果数组的下一个位置,也就是存放满足结果数组条件的下一个元素位置,另一个指针i在后面去找符合结果的元素.

因为满足结果数组存放的条件是不超过两个相同数字,所以我们一开始在结果数组中存放两个元素(这两个元素肯定符合要求),然后我们开始用指针i在外面去寻找符合条件的元素,符合条件的要求就是不等于指针count-2指向的位置,因为不能超过3个相同元素.

如果找到了符合条件的元素,那我们就先将这个元素放进我们刚刚准备的count位置,然后扩容一位结果数组,即count++.如果没有找到,那count不动,后面那个指针自己接着向后遍历即可.

代码如下:

class Solution {public int removeDuplicates(int[] nums) {int count = 2;for (int i = 2; i < nums.length; i++) {if(nums[i] != nums[count-2]){nums[count] = nums[i];count++;}}return count;}
}
推广到保留n个相同元素

也是一样的思路,前n个元素不用判断,结果数组指针指向n+1的位置,然后后指针去找就行.

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

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

相关文章

2024年得物搬砖项目:轻松上手的高利润副业选择

越来越多的人都开始将目光转向互联网&#xff0c;无论是商家还是消费者&#xff0c;都已经习惯网上卖货和购买 其实&#xff0c;其主要原因还是因为如今的生活节奏快&#xff0c;现在的消费主力军转移到了90、00后身上。他们往往忙于工作或者是家庭&#xff0c;无暇去逛商场&a…

webpack压缩css代码示例:压缩css

css-loader用来解析.css文件&#xff0c;将之转换成commjs模块 style-loader用来将css注入到dom中 尽管css-loader和style-loader提供将css导入到js并注入到dom的功能&#xff0c;但webpack默认并不负责压缩css&#xff0c; css-minimizer-webpack-plugin只处理分离出来的CSS文…

jQuery-2.鼠标焦点事件、节点操作、遍历元素、效果

鼠标事件 鼠标事件是当用户在文档上移动或单击鼠标时而产生的事件&#xff0c;常用的鼠标事件&#xff1a; 方法 描述 执行时机 click() 触发或将函数绑定到指定元素的click事件 单击鼠标时 mouseover() 触发或将函数绑定到指定元素的mouse over事件 鼠标移过时 mous…

《一“企”谈》∣企企通走进『鹏辉能源』,探索百亿储能上市企业如何实现供应链数字化转型

随着运营模式的升级和市场竞争的加剧&#xff0c;采购数字化已成为企业提升竞争力的关键。通过整合人工智能、大数据、云计算和物联网等先进技术&#xff0c;采购流程正逐步实现智能化、协同化和绿色化&#xff0c;大幅提升采购效率和决策质量。 广州鹏辉能源科技股份有限公司&…

mysql与idea连接

1、安装mysql&#xff0c;确保电脑中有sql数据库&#xff1b; 2、在‘服务’中开启mysql; 3、将mysql-connector-java-8.0.16.jar包放入web/WEB-INF/lib并配置&#xff1b; mysql-connector-java 5及以下&#xff0c;配置的是com.mysql.jdbc.Driver驱动mysql-connector-java 6…

webpack如何自定义一个loader

我们在使用脚手架的搭建项目的时候往往都会帮我们配置好所需的loader&#xff0c;接下来讲一下我们要如何自己写一个loader应用到项目中&#xff08;完整代码在最后&#xff09; 1. 首先搭建一个项目并找到webpack配置文件&#xff08;webpack.config.js&#xff09; 在modul…

免费PDF批量加密工具

最近在找PDF批量加密的软件来着&#xff0c;发现很多都是需要收费的&#xff0c;当然如果平时工作需要用的比较多&#xff0c;支持一下还是ok的&#xff0c;但是多数人还是偶尔用一下所以没有必要买。 工作用的话&#xff0c;一般企业文件、个人隐私资料、重要合同...所有重要文…

RK3568外置RTC芯片PCF8563T(或替代型号)实验

RK3568 外接 PCF8563 RTC Chapter0 RK3568 外接 PCF8563 RTC1 menuconfig中打开pcf8563驱动2 设备树DTS3 修改驱动 Chapter1 【正点原子Linux连载】第三十一章 外置RTC芯片AT8563T实验 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南第三十一章 外置RTC芯片AT8563T实验3…

蓝桥杯备战20.有奖问答_动态规划

P9230 [蓝桥杯 2023 省 A] 填空问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; #define endl \n #define int long long const int N 2e510,M 1e310; int f[M][M]; signed main( {std::ios::sync_with_stdio(0),cin.…

京牌背户车现象及其影响 浅谈解决方案!

作为一名在汽车行业拥有多年经验的专家&#xff0c;小编沐沐曾亲自经历过北京车牌租赁市场的混乱局面。在这个领域&#xff0c;不仅见证了无数政策变动和市场风潮&#xff0c;还亲身参与了诸多关于京牌背户车的研究与讨论。 今天&#xff0c;盛昂京牌小编沐沐想通过一些真实的案…

炫酷渐变官网源码

炫酷渐变官网源码 效果图部分代码领取源码下期更新预报 效果图 部分代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><title…

linux centos 安装Anaconda3-5.2.0

目录 下载Anaconda3-5.2.0 安装Anaconda3-5.2.0 配置.bashrc 配置 /etc/profile 查看conda是否成功&#xff0c;使用查看conda --version命令 下载Anaconda3-5.2.0 wget https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh 安装Anaconda3-5.2.0 bash…

ThreadLocal 源码详解

概述 ThreadLocal是一个java提供的本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射&#xff0c;各个线程之间的变量互不干扰&#xff0c;在高并发场景下&#xff0c;可以实现无状态的调用&#xff0c;特别适用于各个线程依赖不通的变量值完成操作…

PSFR-GAN复现

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言快速开始安装依赖权重下载及复原 训练网络数据集训练脚本 代码详解训练BaseOptio…

NSSCTF | [SWPUCTF 2021 新生赛]caidao

打开题目&#xff0c;只有一个图片&#xff0c;图片中间是一个一句话木马的一部分&#xff0c;意思是服务器可以执行通过POST的请求方式传入参数为wllm的命令&#xff0c;那这就是典型的命令执行&#xff0c;当然&#xff0c;也可以使用蚁剑或者菜刀连接这个木马 一句话木马的…

DOM API

DOM 基本概念 DOM 全称为 Document Object Model&#xff0c;就是文档对象模型。html 的每个标签都可以映射到 js 中的一个对应对象上。 DOM 树 一个页面的结构是一个树形结构, 称为 DOM 树 . 树形结构在数据结构阶段会介绍. 就可以简单理解成类似于 " 家谱 &q…

Qt正则表达式运用---QRegExp

文章目录 1.匹配数字1.1个位数1.2两位数 及多位数1.3 匹配非数字 匹配单词 1.匹配数字 1.1个位数 QString str "0 1 2 23 10 20 &#xffe5;24 #0 44 111 22- 123 58 99 ";QRegExp rx("\\b\\d{1}\\b");int index0;while(rx.indexIn(str,index) ! -1){…

全场景智能终端RK3288主板在智能垃圾回收项目的应用,支持鸿蒙,支持全国产化

全场景智能终端主板AIoT-3588A推出的智能化垃圾回收项目&#xff0c;旨在解决城市化进程中日益突出的垃圾处理问题。智能垃圾分类箱具备触屏操作、自动称重、分类投放以及电子语音播报提示等多项功能&#xff0c;居民能够经过分类积分卡、手机扫码、人脸识别等多种途径进行投放…

【小笔记】streamlit使用笔记

【小笔记】streamlit使用笔记 1.streamlit是什么&#xff0c;为什么要用它&#xff1f; 一句话&#xff0c;这个东西是一个python的可视化库&#xff0c;当你想要给你的程序添加个web界面&#xff0c;而又不会或不想用前端技术时&#xff0c;你就可以考虑用它。 类似的可视化库…

uni-app(四):原生插件开发(Android)

原生插件开发 原生插件开发module1.创建模块2.解决报错3.修改依赖4.编写插件代码5.添加插件配置6.引入模块7.调用插件代码8.运行 component1.创建模块2.解决报错3.修改依赖4.编写插件代码5.添加插件配置6.引入模块7.调用插件代码8.运行 原生插件开发 主要分为两类扩展: Module:…