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

2216. 美化数组的最少删除数

我的做法:
使用一个index作为检查坐标,当index为偶数时检查当前数和后一个数是否相等,相等的话,后一个数设置为-1,注意如果相等,要把相等的数保留下来last,以便接下来检查,防止出现2333这种连续的情况,但是当接下来检查通过要及时把保留数last变回初识值。另外要注意遍历到数组最后一个元素时,就不用判断了。

class Solution {
public:int minDeletion(vector<int>& nums) {int cnt = 0;int n = nums.size();int index = -1, last = -1;for (int i = 0; i < n; ++i) {if (nums[i] == last && index % 2 == 0) {nums[i] = -1;++cnt;} else if (nums[i] != -1) {++index;} else {continue;}if (i == n - 1) break;if (index % 2 == 0) {if (nums[i] == nums[i + 1]) {nums[i + 1] = -1;last = nums[i];++cnt;} else {continue;}} else {continue;}}if ((index + 1) % 2 != 0) {++cnt;}return cnt;}
};

其中,很多continue语句可以省略。
更简单的写法:
其实相当于用cnt代替index进行计数了,变换后的数组长度等于n-cnt

class Solution {
public:int minDeletion(vector<int>& nums) {int n = nums.size(), cnt = 0;for (int i = 0; i < n; ++i) {if (i < n - 1 && (i - cnt) % 2 == 0 && nums[i] == nums[i + 1]) {++cnt;}}return (n - cnt) % 2 == 0 ? cnt: cnt + 1;}
};

相关文章:

2216. 美化数组的最少删除数

我的做法&#xff1a; 使用一个index作为检查坐标&#xff0c;当index为偶数时检查当前数和后一个数是否相等&#xff0c;相等的话&#xff0c;后一个数设置为-1&#xff0c;注意如果相等&#xff0c;要把相等的数保留下来last&#xff0c;以便接下来检查&#xff0c;防止出现2…...

竞赛 题目:基于深度学习的人脸表情识别 - 卷积神经网络 竞赛项目 代码

文章目录 0 简介1 项目说明2 数据集介绍&#xff1a;3 思路分析及代码实现3.1 数据可视化3.2 数据分离3.3 数据可视化3.4 在pytorch下创建数据集3.4.1 创建data-label对照表3.4.2 重写Dataset类3.4.3 数据集的使用 4 网络模型搭建4.1 训练模型4.2 模型的保存与加载 5 相关源码6…...

基于安卓android微信小程序的好物分享系统

运行环境 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&a…...

【Spring Boot】使用WebSocket协议完成来单提醒及客户催单功能

1 WebSocket介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信(双向传输)——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c; 并进行双向数据传输。 1.1 HTTP协议和WebSocket协议对比 1、HTTP是短…...

如何有效的禁止Google Chrome自动更新?

禁止Chrome自动更新 1、背景2、操作步骤 1、背景 众所周知&#xff0c;当我们在使用Selenium进行Web自动化操作&#xff08;如爬虫&#xff09;时&#xff0c;一般会用到ChromeDriver。然而Driver的更新速度明显跟不上Chrome的自动更新。导致我们在使用Selenium进行一些操作时就…...

OpenShift 4 - 部署 RHODS 环境,运行 AI/ML 应用(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 RHODS 1.33 的环境中验证 文章目录 RHODS 简介安装 RHODS 环境运行环境说明用 RHODS Operator 安装环境创建 Jupyter Notebook 运行环境 开发调式 AI/ML 应用部署运行 AI/ML 应用视频参…...

MySQL 的执行原理(二)

5.3. MySQL 的查询成本 5.3. MySQL 的查询成本 MySQL 执行一个查询可以有不同的执行方案&#xff0c;它会选择其中成本最低&#xff0c;或者 说代价最低的那种方案去真正的执行查询。不过我们之前对成本的描述是非常模 糊的&#xff0c;其实在 MySQL 中一条查询语句的执行成本…...

postgres in (?,?) 和 =any(?) 用法/性能对比

刚刚回顾了一下 JDBC 操作 SQL Server 时如何传入列表参数&#xff0c;即如何给 in (?) 条件直接传入一个列表参数&#xff0c;然而本质上是不支持&#xff0c;最终不得不展开为 in (?, ?,...?) 针对每个元素单独设置参数&#xff0c;不定长的参数对于重用已编译 PreparedS…...

46. Qt Android调用Java代码进行辅助开发 -- 框架搭建

1. 说明 使用Qt进行android开发时,某种情况下使用C++的知识或者Qt提供的方法是无法满足功能需求的,即使通过各种手段能够勉强实现功能,也非常的麻烦。此时,就需要Java来辅助实现了。在Qt中提供了调用Java代码的接口,比较方便。本片博客先介绍如何搭建一个能够调用java代码…...

NX二次开发UF_CAM_PREF_set_logical_value 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_PREF_set_logical_value Defined in: uf_cam_prefs.h int UF_CAM_PREF_set_logical_value(UF_CAM_PREF_t pref, logical value ) overview 概述 This function sets the lo…...

docker下移除不使用的镜像、容器、卷、网络

Prune images docker image prune移除没有标签并且没有被容器引用的镜像&#xff0c;这种镜像称为 dangling(摇晃的) 镜像。 示例1&#xff1a;docker image prune 删除了redis&#xff0c;无标签且无引用 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STA…...

C语言基本算法之选择排序

目录 概要&#xff1a; 代码如下 运行结果如下 概要&#xff1a; 它和冒泡排序一样&#xff0c;都是把数组元素按顺序排列&#xff0c;但是方法不同&#xff0c;冒泡排序是把较小值一个一个往后面移&#xff0c;选择排序则是直接找出最小值&#xff0c;可以这个说&#xff…...

服务器数据恢复—raid5上层NTFS分区误删除/格式化的数据恢复案例

NTFS是windows操作系统服务器应用最为广泛的文件系统之一。理论上&#xff0c;NTFS文件系统格式化操作虽然不会对数据造成太大的影响&#xff0c;但是有可能会出现部分文件目录结构丢失的情况。下面介绍一台服务器误操作导致raid5阵列上层的NTFS分区被格式化后如何逆向操作恢复…...

【漏洞复现】IP-guard WebServer 存在远程命令执行漏洞

漏洞描述 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危…...

人工智能学习阶段有哪些?

人工智能学习阶段有哪些? 人工智能是一个跨学科、跨领域的杂交学科&#xff0c;未来的趋势来看,人工智能的出现使人们的生活变得更美好、更便捷&#xff0c;许多小伙伴想学习人工智能&#xff0c;其实看似人工智能比较杂多&#xff0c;无从下手&#xff0c;我们只要从以下7个阶…...

vue 中为什么需要虚拟DOM、VDOM 是如何生成的、VDOM 如何做 diff 的?

一、vue 中为什么需要虚拟DOM 1.1本概念 基本上所有框架都引入了虚拟 DOM 来对真实 DOM 进行抽象&#xff0c;也就是现在大家所熟知的VNode 和VDOM Virtual DOM 就是用js 对象来描述真实 DOM&#xff0c;是对真实 DOM 的抽象&#xff0c;由于直接操作 DOM 性能低但是is 层的操…...

数据分析思维与模型:相关分析法

相关分析法是一种用于研究两个或多个变量之间关系强度和方向的统计方法。这种方法在多个领域&#xff0c;如经济学、心理学、社会科学和自然科学中都有广泛应用。其核心是通过计算相关系数来量化变量之间的相关性。以下是相关分析法的一些基本概念和步骤&#xff1a; 选择变量…...

【算法萌新闯力扣】:两句话中的不常见单词

力扣热题&#xff1a;两句话中的不常见单词 开篇 今天是备战蓝桥杯的第19天&#xff0c;今天到目前刷了4道力扣算法题。其中&#xff0c;这道题是对我来说收获最大的一道&#xff0c;让我更熟练地掌握了一些算法题中方法&#xff0c;于是来与大家分享一下。 题目链接: 884.两…...

Xilinx Zynq-7000系列FPGA任意尺寸图像缩放,提供两套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA图像缩放方案 3、设计思路详解HLS 图像缩放介绍 4、工程代码1&#xff1a;图像缩放 HDMI 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程代码2&#xff1a;图像缩放 LCD 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设…...

基于 Glibc 版本升级的 DolphinDB 数据查询性能优化实践

在高并发查询、查询需要涉及很多个分区的情况下&#xff0c;低版本的 glibc&#xff08;低于2.23&#xff09;会严重影响查询性能。需要升级 glibc 解决该问题优化性能。我们撰写了本文&#xff0c;通过 patchelf 工具修改可执行文件和动态库的 rpath&#xff0c;达到无需升级系…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...