当前位置: 首页 > news >正文

leetcode第80题:删除有序数组中的重复项 II

题目描述

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成

示例 1:

输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。 不需要考虑数组中超出新长度后面的元素。

示例 2:

输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。

整体思路: 这是一个有序的数组,出现重复的数子只会在一起。因为我们找到一个重复数字之后就需要立即删除,导致数组后边的元素会一直发生元素的序号变化,所以我们采用从后往前的方法。使用两个指针,一个指针s,一个指针j,如下图:
在这里插入图片描述
设置一个计数器,1.当重复元素超过2时,就将当前元素后面的所有元素向前移一位。移完之后因为之前s指针指向的还是之前的位置,因此要减一。只有发生移位时,数组的长度才会发生变化。2.当两个元素不相同时,就将s指针指向j,并且将计数器重置为1。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;class Solution {
public://将数组当前的这个删除并且移动元素void move(vector<int>& nums,int pre){for(int i=pre ; i<nums.size()-1 ; i++){nums[i]=nums[i+1];}}int removeDuplicates(vector<int>& nums) {int count=nums.size();//记录nums的元素个数int s=nums.size()-1;	//指针swhile (s>1)		//只剩最后一个元素时不用再检查了{   int renum=1;//计数器,自己就是一个,所以设置为1for(int j=s-1;j>=0;j--){if(nums[s]==nums[j]){renum++;//每次删除操作时,数组的长度就减 1if(renum>2){move(nums,j);s--;count--;}}else{s=j;renum=1;}}}return count;}};
int main(){vector<int> nums={1,1,1,2,2,3};Solution s;cout<<s.removeDuplicates(nums);
}

在这里插入图片描述

相关文章:

leetcode第80题:删除有序数组中的重复项 II

题目描述 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 …...

【Docker】Docker-Compose内置DNS负载均衡失效问题

Docker Compose实现负载均衡 还是对前面的例子docker-compose.yml稍微修改&#xff1a; version: "3.8"services:flask-demo:build:context: .dockerfile: Dockerfileimage: flask-demo:latestenvironment:- REDIS_HOSTredis-server- REDIS_PASS${REDIS_PASS}healt…...

[Python]Selenium-自动化测试

Selenium是一个web自动化测试的工具,在使用之前先在对应的项目添加工具包噢. 本文章主要简单的介绍了selenium对于自动化测试的使用 目录 添加浏览器驱动 get函数来到对应网站 驱动的定位 元素定位 id定位 class name定位 CSS定位 XPath定位 link text定位 定位一…...

高效管理文件夹名称:如何批量修改指定多样化的文件夹名称

在文件管理工作中&#xff0c;文件夹名称的管理对于整体的文件管理体系有着至关重要的作用。然而&#xff0c;往往我们会在文件夹名称的管理上遇到一些难题&#xff0c;如&#xff1a;需要修改的文件夹名称多样化&#xff0c;无法一次性满足所有需求。为了解决这个问题&#xf…...

c 读取音频协议WAV文件头(再生成wav文件)

查找wav文件头关键struct 位置&#xff0c;当然也可查找avi文件头。用这个方法找到avi文件data位置后&#xff0c;可直接读出文件的每一帧图片。当然avi数据的标志位不是data,可以是00dc等。 WAV音频头文件有三个关键struct&#xff1a;RIFF, fmt,data。 AVI 视频文件头的关键…...

Prompt设计与大语言模型微调

本文主要介绍了Prompt设计、大语言模型SFT和LLM在手机天猫AI导购助理项目应用。 ChatGPT基本原理 “会说话的AI”&#xff0c;“智能体” 简单概括成以下几个步骤&#xff1a; 预处理文本&#xff1a;ChatGPT的输入文本需要进行预处理。输入编码&#xff1a;ChatGPT将经过预处理…...

修复VS2015没有代码提示的问题【已解决】

问题描述 在Visual Studio 中编写代码时&#xff0c;发现使用库函数的时候&#xff0c;在类对象后输入点后&#xff0c;并没有出现类对应的成员信息的提示。 解决过程 1&#xff09;方法1&#xff1a; 百度“vs 没有代码提示”&#xff0c;搜索解决方案。 方案1&#xff1…...

DeepSpeed: 大模型训练框架 | 京东云技术团队

背景&#xff1a; 目前&#xff0c;大模型的发展已经非常火热&#xff0c;关于大模型的训练、微调也是各个公司重点关注方向。但是大模型训练的痛点是模型参数过大&#xff0c;动辄上百亿&#xff0c;如果单靠单个GPU来完成训练基本不可能。所以需要多卡或者分布式训练来完成这…...

暄桐推荐|学书法的必读书目

在暄桐教室&#xff0c;写字之外&#xff0c;读书、静坐也是桐学们修习的功课。今天&#xff0c;便向你推荐&#xff0c;关于学习书法&#xff0c;暄桐教室的那些必读书目&#xff1a;    暄桐推荐学书法必读书之初阶书目&#xff1a;      对零基础的小白同学或刚入门…...

2023年赋能更多的人

最近接触到一些新人&#xff0c;是真正的网络新人&#xff0c;慢慢理解了新人的困惑。 对于新人&#xff0c;每天获取的信息五花八门&#xff0c;这是好的也是极其不好的。因为他们不知道如何筛选&#xff0c;到底适不适合自己去做。 我一直在劝大家去做一些内容创造性的事情…...

量子计算与量子密码(入门级)

量子计算与量子密码 写在最前面一些可能带来的有趣的知识和潜在的收获 1、Introduction导言四个特性不确定性&#xff08;自由意志论&#xff09;Indeterminism不确定性Uncertainty叠加原理(线性)superposition (linearity)纠缠entanglement 虚数的常见基本运算欧拉公式&#x…...

将安全作为首要目标 — Venus 的现状和前景展望

DeFi 的全面爆发将上一轮牛市推向巅峰。在不断的演化中&#xff0c;DeFi 领域也产生了很多新兴的细分领域&#xff0c;比如收益聚合器、合成资产、各种 DeFi 收益工具&#xff0c;以及最近整个市场都在讨论的 RWA 等。 DeFi 在不断进化&#xff0c;不变的是&#xff0c;DEX 和借…...

『第七章』翩翩起舞的雨燕:顺序与并发执行

在本篇博文中,您将学到如下内容: 1. 顺序执行2. 主线程 Main Thread 的秘密3. 并发执行:GCD 与分发队列(DispatchQueue)4. 延时执行5. 数据竞争(Data Race)6. 线程间的同步7. 避免线程爆炸8. RunLoop 与定时器总结楚客自相送,沾裳春水边。 晚来风信好,并发上江船。 花映…...

c语言进制的转换10进制转换16进制

c语言进制的转换10进制转换16进制 c语言的进制的转换 c语言进制的转换10进制转换16进制一、16进制的介绍二、10进制转换16进制的方法 一、16进制的介绍 十六进制&#xff1a; 十六进制逢十六进一&#xff0c;所有的数组是0到9和A到F组成&#xff0c;其中A代表10&#xff0c;B代…...

js中的Formdata数据结构

这里写目录标题 一、基本概念二、常用方法1.append(name, value)、set(name, value)2.get()、getAll()3.has(name)4.delete(name)5.keys(),values(),entries() 三、其他细节1.for of遍历2.转为对象3.结合 URLSearchParams 转为queryString 一、基本概念 FormData 提供了一种表…...

Spring MVC 执行流程

前言 Spring MVC 是一个非常强大的框架&#xff0c;它能够帮助开发人员快速构建高效的 Web 应用程序。然而&#xff0c;要理解 Spring MVC 的执行流程并不容易&#xff0c;因为它涉及到多个组件和模块。在本文中&#xff0c;我们将介绍 Spring MVC 的执行流程&#xff0c;帮助…...

JAVA毕业设计104—基于Java+Springboot+Vue的医院预约挂号小程序(源码+数据库)

基于JavaSpringbootVue的医院预约挂号小程序(源码数据库)104 一、系统介绍 本系统前后端分离带小程序 小程序&#xff08;用户端&#xff09;&#xff0c;后台管理系统&#xff08;管理员&#xff0c;医生&#xff09; 小程序&#xff1a; 预约挂号&#xff0c;就诊充值&…...

一文了解独立站黑科技:clock斗篷技术

FP产品作为高利润高回报的产品&#xff0c;它热度在出海商品中是一直居高不下的。但这类产品在独立站的运营中往往会遇到很多问题&#xff0c;例如最让商家头疼的投流问题&#xff0c;FP产品的推广营销很容易遭到平台的管控封禁&#xff0c;这时候往往会用到市面上现在很火的黑…...

Java IDEA controller导出CSV,excel

Java IDEA controller导出CSV&#xff0c;excel 导出excel/csv&#xff0c;亲测可共用一个方法&#xff0c;代码逻辑里判断设置不同的表头及contentType&#xff1b;导出excel导出csv 优化&#xff1a;有数据时才可以导出参考 导出excel/csv&#xff0c;亲测可共用一个方法&…...

FFmpeg编译安装(windows环境)以及在vs2022中调用

文章目录 下载源码环境准备下载msys换源下载依赖源码位置 开始编译编译x264编译ffmpeg 在VS2022写cpp调用ffmpeg 下载源码 直接在官网下载压缩包 这个应该是目前&#xff08;2023/10/24&#xff09;最新的一个版本。下载之后是这个样子&#xff1a; 我打算添加外部依赖x264&a…...

告别大模型幻觉!RAG 原理 + Spring AI 代码实现一步到位

RAG 诞生背景&#xff1a;大模型原生缺陷 LLM 存在 3 个无法自愈的问题&#xff0c;这是 RAG 技术的核心出发点&#xff1a; LLM存在幻觉现象, 生成无事实依据、虚假编造的内容LLM知识更新缓慢, 预训练数据固定&#xff0c;无法同步新数据 / 私有数据LLM对领域知识的理解有限, …...

像素剧本圣殿惊艳案例:故障艺术标题下生成的赛博朋克短剧完整场次

像素剧本圣殿惊艳案例&#xff1a;故障艺术标题下生成的赛博朋克短剧完整场次 1. 像素剧本圣殿创作工具介绍 Pixel Script Temple&#xff08;像素剧本圣殿&#xff09;是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个独特的创作平台将先进的AI推理能力与复…...

c++阿克曼函数详解

不爱吃饭的蓝胖子要开始整活了&#xff01;&#xff01;&#xff01;大家好&#xff0c;我是蓝胖子&#xff01;好久不见&#xff0c;倍感思念&#xff01;今天带来的是--C阿克曼函数~~希望你能看到最后&#xff0c;有惊喜哈&#xff01;正片开始 ——————————————…...

利用快马AI快速原型化一个Python Socket聊天室应用

最近在学习计算机网络相关的知识&#xff0c;发现Socket编程是个很有意思的实践方向。正好在InsCode(快马)平台上尝试用AI快速原型化了一个Python Socket聊天室应用&#xff0c;整个过程比想象中顺利很多&#xff0c;分享下我的实现思路和体验。 项目背景与需求分析 这个聊天…...

【原创】金三银四末班车!4个高薪安全岗,2W月短期项目、百万年薪云架构师,速来!

【原创】金三银四末班车&#xff01;4个高薪安全岗&#xff0c;2W/月短期项目、百万年薪云架构师&#xff0c;速来&#xff01; 金三银四虽然接近尾声&#xff0c;但好岗位从不等人&#xff01;这次我们挖到了4个含金量超高的信息安全岗位&#xff0c;覆盖北京、深圳、上海、厦…...

实测美胸-年美-造相Z-Turbo:一键部署,效果超乎想象

实测美胸-年美-造相Z-Turbo&#xff1a;一键部署&#xff0c;效果超乎想象 1. 镜像简介与核心特点 美胸-年美-造相Z-Turbo是基于Xinference框架部署的文生图模型服务&#xff0c;专为快速生成高质量图像而设计。这个镜像继承了Z-Image-Turbo的优秀基因&#xff0c;并针对特定…...

【实战指南】解决Qt平台插件加载失败:从环境变量到PyQt5重装的完整方案

1. 遇到Qt平台插件加载失败&#xff1f;别慌&#xff0c;先看懂报错信息 最近在Windows上跑labelimg标注工具时&#xff0c;突然弹出一个让人头疼的错误&#xff1a; qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though…...

如何快速上手tuic:从零开始的安装与配置教程

如何快速上手tuic&#xff1a;从零开始的安装与配置教程 【免费下载链接】tuic 项目地址: https://gitcode.com/gh_mirrors/tu/tuic tuic是一款高效的GitHub加速工具&#xff0c;能够帮助用户解决GitHub访问速度慢、连接不稳定等问题&#xff0c;让开发者更流畅地获取G…...

UE5.0.3打包Linux报错?手把手教你搞定BlueprintJson插件缺失问题

UE5.0.3 Linux打包报错终极指南&#xff1a;BlueprintJson插件问题的深度解析与实战修复 当你满怀期待地在UE5.0.3中点击"打包Linux"按钮&#xff0c;却看到屏幕上弹出关于BlueprintJson插件的红色错误信息时&#xff0c;那种挫败感我深有体会。作为一名经历过无数次…...

Jimeng LoRA效果对比:同一seed下不同Epoch生成图随机性与稳定性分析

Jimeng LoRA效果对比&#xff1a;同一seed下不同Epoch生成图随机性与稳定性分析 1. 项目简介&#xff1a;一个专为LoRA效果测试而生的工具 如果你玩过Stable Diffusion&#xff0c;肯定对LoRA不陌生。它是一种轻量化的模型微调方法&#xff0c;能在不改变基础大模型的情况下&…...