leetcode做题笔记2216. 美化数组的最少删除数

给你一个下标从 0 开始的整数数组 nums ,如果满足下述条件,则认为数组 nums 是一个 美丽数组 :

  • nums.length 为偶数
  • 对所有满足 i % 2 == 0 的下标 i ,nums[i] != nums[i + 1] 均成立

注意,空数组同样认为是美丽数组。

你可以从 nums 中删除任意数量的元素。当你删除一个元素时,被删除元素右侧的所有元素将会向左移动一个单位以填补空缺,而左侧的元素将会保持 不变 。

返回使 nums 变为美丽数组所需删除的 最少 元素数目

思路一:贪心

c++解法

class Solution {
public:int minDeletion(vector<int>& nums) {int n = nums.size();int flag = -1;int ans = 0;for (int i = 0; i < n; i++) {if (flag == -1) {flag = nums[i];}if (nums[i] != last) {ans += 2;flag = -1;}}return n - ans;}
};

分析:

根据美丽数组的定义,前后两个数不同的即可组成美丽数组,且数组长度为偶数,每次记录两个,当两个数不相等时放入美丽数组,得到最长数组长度

总结:

本题考察贪心思路,根据定义将不同的两个数不断放入数组,最后得到最大长度数组

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

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

相关文章

本机idea连接虚拟机中的Hbase

相关环境&#xff1a; 虚拟机&#xff1a;Centos7 hadoop版本:3.1.3 hbase版本:2.4.11 zookeeper版本:3.5.7 Java IDE:IDEA JDK&#xff1a;8 步骤 步骤一&#xff1a;在idea创建一个maven项目 步骤二&#xff1a;在虚拟机里找到core-site.x…

Epoll:让IO多路复用变得有趣

Epoll 是 Linux 系统中高性能的 I/O 事件通知机制&#xff0c;通过它可以实现对大量文件描述符的高效监控&#xff0c;适用于构建高并发的网络服务器。 文章目录 epoll介绍主要特点epoll与poll、select区别效率和扩展性文件描述符数量限制工作模式小结 epoll常用函数epoll_crea…

苹果ipa内侧分发可以通过哪些方法

苹果ipa内侧分发可以通过使用苹果企业签名、云服务分发平台、TestFlight分发等方式实现。 对于企业签名&#xff0c;它适合用于公司内部员工使用的应用&#xff0c;或者需要快速安装和使用的应用。开发者可以在苹果开发者中心生成企业级证书&#xff0c;然后将应用打包成IPA文…

如何在3dMax中使用Python返回场景内所有对象的列表?

如何在3dMax中使用Python返回场景内所有对象的列表&#xff1f; 3dMax支持开发基于Python的工具和扩展&#xff0c;因此可以对其进行自定义并将其集成到现代数字内容创建管道中。为此&#xff0c;3dMax集成了Python 3.9解释器&#xff0c;并通过pymxs API公开了3dMax的丰富功能…

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

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

工业交换机的六种分类

工业交换机可以按照不同的标准进行分类&#xff0c;具体有六种分类方法。我们今天就来简单了解一下这六种分类方法&#xff0c;它们分别是&#xff1a;工业交换机的管理标准、工业交换机的结构标准、工业交换机的网络位置、工业交换机的传输速率、工业交换机的工作协议以及工业…

[软件安装]anaconda安装

anaconda安装 以下是在Linux下安装anaconda的详细步骤&#xff1a; 首先&#xff0c;在anaconda官网上下载适用于Linux的anaconda安装包。 打开终端&#xff0c;进入下载目录并解压安装包。 执行以下命令进入安装程序&#xff1a;bash Anaconda3-2021.05-Linux-x86_64.sh …

提升--09-1--AQS底层逻辑实现

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、怎么解释AQS是什么&#xff1f;AQS的本质是JUC包下一个抽象类&#xff0c;AbstractQueuedSynchronizer &#xff08;抽象的队列式同步器&#xff09; 二、AQS核…

四川芸鹰蓬飞:抖店运营的时候注意什么?

抖店作为一个短视频平台&#xff0c;吸引了越来越多的商家加入。在抖店上进行有效的运营是提高销量和曝光度的关键。那么&#xff0c;抖店怎么设置运营呢&#xff1f;有哪些方法可以帮助商家在这个竞争激烈的平台上脱颖而出呢&#xff1f; 一、抖店怎么设置运营&#xff1f; 首…

三点的最近距离

题目描述 题目中会给你三个整数 a,b,c,表示三个点在数轴上所处的位置。对于每一个点&#xff0c;你最多可以移动一次&#xff0c;也可以选择不移动&#xff0c;现在请你编写代码计算&#xff0c;移动后三个点的最小的距离和为多少&#xff1f; 输入输出格式 输入格式 一行三…

微服务实战系列之加密RSA

前言 在这个时代&#xff0c;我们选择的人生目标已丰富多彩&#xff0c;秉持的人生态度也千差万别&#xff1a; 除了吃喝玩乐&#xff0c;还有科技探索&#xff1b; 除了CityWalk&#xff0c;还有“BookWalk”&#xff1b; 除了走遍中国&#xff0c;还有走遍世界&#xff1b; …

118. 杨辉三角 --力扣 --JAVA

题目 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 解题思路 List的首位是0&#xff0c;而行数的首位是1&#xff0c;所以我们在进行行数循环时需要小于numRows&#xff0c;而在统…

Selenium自动化测试详解

最近也有很多人私下问我&#xff0c;selenium学习难吗&#xff0c;基础入门的学习内容很多是3以前的版本资料&#xff0c;对于有基础的人来说&#xff0c;3到4的差别虽然有&#xff0c;但是不足以影响自己&#xff0c;但是对于没有学过的人来说&#xff0c;通过资料再到自己写的…

Spring-IOC-Spring6和JUnit5集成

1、父工程pom.xml <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>…

【FLink】水位线(Watermark)

目录 1、关于时间语义 1.1事件时间 1.2处理时间​编辑 2、什么是水位线 2.1 顺序流和乱序流 2.2乱序数据的处理 2.3 水位线的特性 3 、水位线的生成 3.1 生成水位线的总体原则 3.2 水位线生成策略 3.3 Flink内置水位线 3.3.1 有序流中内置水位线设置 3.4.2 断点式…

【shell】条件语句

一、测试 1.1文件测试test test命令是内部命令 test的语法 test 条件表达式 [ 条件表达式 ] test 选项 文件 -d &#xff1a;判断是否是目录 -f &#xff1a;判断是否是普通文件 -b &#xff1a;判断是否是块设备 -c &#xff1a;判断是否是字符设备 -e &#xff1a;判断是否…

【Python】给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

问题描述 给出一个包含n个整数的数列&#xff0c;问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数&#xff0c;为给定的数列&#xff0c;数列中的每个数都不大于10000。 第三行包含一个整数a&#xff0c;为待查找的数。 输出格式…

rv1126-rv1109-openssh

这是一个工具&#xff0c;可以通过ssh远程登录来操作&#xff0c;非常逆天&#xff01; 于是rv1109代码自身自带有openssh 所以只需要打开config即可 diff --git a/buildroot/configs/rockchip_rv1126_rv1109_spi_nand_defconfig b/buildroot/configs/rockchip_rv1126_rv1109…

数据库迁移脚本

数据库迁移脚本 这次使用node.js作为工具去做 至于为啥用node.js?? 可能是js在异步操作上非常高效? (但它仍然是单线程的&#xff0c;对于 CPU 密集型的操作可能不如其他语言。) 本质就是先查再插 例子&#xff1a; {"name": "数据库迁移","…

Blender中的集合(collection)概念

集合是一种逻辑上的分组方式&#xff0c;它可以让你把一些相似或相关的对象放在一起&#xff0c;而不影响它们的变换关系&#xff08;不像父子关系那样&#xff09;。集合可以用来简化你的场景&#xff0c;或者方便你在不同的文件或场景之间进行追加或链接。 集合有以下的特点…