2216. 美化数组的最少删除数 --力扣 --JAVA

题目

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

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

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

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

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

解题思路

  1. 首先对数组长度为1的特殊情况进行单独处理,即直接删除唯一元素;
  2. 创建变量表示删除元素次数,当前索引i(index)和下级索引i + 1(next);
  3. 通过while循环来遍历数组和对数组元素进行校验;
  4. 对删除元素后的数组进行判断是否为偶数,非偶数则需要再删除一个元素(首元素或尾元素,不影响原有数据结构);

代码展示

class Solution {public int minDeletion(int[] nums) {int n = nums.length;if(n == 1){return 1;}int deleteNum = 0;//index 表示i   next表示i+1int index = 0;int next = 1;while (next < n){if(nums[index] == nums[next]){deleteNum++;next++;} else {index = next + 1;next += 2;}}return (n - deleteNum) % 2 == 0 ? deleteNum : deleteNum + 1;}
}

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

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

相关文章

www.testfire.nets渗透测试报告

www.testfire.nets渗透测试报告 一、测试综述 1.1.测试⽬的 通过实施针对性的渗透测试&#xff0c;发现testfire.net⽹站的安全漏洞&#xff0c;锻炼自己的渗透水平 1.2.测试范围 域名&#xff1a;www.testfire.net IP:65.61.137.117 测试时间&#xff1a; 2023年11月…

pcl库问题遇到总结

1&#xff0c;memory.h触发断点 方法&#xff1a;VS&#xff1a;通过项目属性->C/C->代码生成->启用增强指令集->选择AVX 2&#xff0c;error C3083: “this_thread”标红 boost::this_thread::sleep(boost::posix_time::microseconds(100000)) 修改为 std::th…

AC修炼计划(AtCoder Beginner Contest 329)

传送门&#xff1a;&#xff33;&#xff4b;&#xff59; Inc, Programming Contest 2023&#xff08;AtCoder Beginner Contest 329&#xff09; - AtCoder A&#xff0c;B&#xff0c;C&#xff0c;D 这四道题比较简单&#xff0c;就不多叙述。 E - Stamp 这题是一道比较…

LeetCode5:最长回文子串

参考链接: &#x1f517;:【5. 最长回文子串 Longest Palindromic Substring【LeetCode 力扣官方题解】-哔哩哔哩】 具体代码 class Solution {public String longestPalindrome(String s) {int i0,j,k0,ns.length(),max_len1,begin0;char[] ch s.toCharArray();boolean[][] …

opencv-图像平滑

高斯平滑 高斯平滑即采用高斯卷积核对图像矩阵进行卷积操作。高斯卷积核是一个近似服从高斯分布的矩阵&#xff0c;随着距离中心点的距离增加&#xff0c;其值变小。这样进行平滑处理时&#xff0c;图像矩阵中锚点处像素值权重大&#xff0c;边缘处像素值权重小。 import cv2 …

Sentinel概述

Sentinel 框架通常指的是用于服务治理和流量控制的开源框架&#xff0c;特别是在微服务架构中。在不同的上下文中&#xff0c;可能有不同的 Sentinel 框架&#xff0c;但最常见的是 Alibaba 开源的 Sentinel 框架。 Alibaba Sentinel 框架是一个用于流量控制、熔断降级和系统负…

linux 下打印堆栈信息 jstack pstack gstack 有啥区别?分别的使用场景是啥?

jstack、pstack和gstack是在Linux系统下用于打印堆栈信息的工具&#xff0c;它们的使用场景和功能略有不同。 jstack&#xff1a;jstack是Java虚拟机自带的工具&#xff0c;用于打印Java进程的堆栈信息。它可以显示Java线程的状态、锁信息、线程堆栈等。jstack主要用于诊断Java…

【封装UI组件库系列】全局样式的定义与重置

封装UI组件库系列第二篇样式​​​​​​​ ​​​​​​&#x1f31f;前言 &#x1f31f;定义全局样式 生成主题色和不同亮度的颜色 ​编辑 中性色及其他变量 &#x1f31f;样式重置 &#x1f31f;总结 ​​​​​​​​​​​​​​&#x1f31f;前言 在前端开发中&…

在c#中如何将多个点位(Point)转换为多边形(Polygon)并装换为shp图层

&#x1f47b;如图&#xff0c;我现在有一组经纬度点位Point&#xff0c;接下来我们将他装换为多边形Polygon格式 &#x1f47b;使用QGIS > 图层 > 添加图层 > 添加分隔文本图层 > 打开这个csv点位文件 &#x1f47b;打开后如左下图&#xff0c;csv文件中的四个点位…

C++ DAY03 类与对象

概述 对象&#xff1a;真实存在的事物 类&#xff1a; 多个对象抽取其共同点形成的概念 静态特征提取出的概念称为成员变量, 又名属性 动态特征提取出的概念称为成员函数, 又名方法 类与对象的关系 在代码中先有类后有对象 一个类可以有多个对象 多个对象可以属于同一个…

shell脚本之条件语句

条件语句 linux测试 test 测试 测试表达式是否成立&#xff08;用echo $? 检测是否正确&#xff09; 语法&#xff1a;test [选项] [文件名] 选项作用-e测试文件是否存在-r查看文件有无读的权限-d测试是否为目录-f测试是否为文件-w测试当前用户有无写的权限-x测试是否有执…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—同济大学专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室&#xff0c;浓厚创新产学研氛围&#xff01; 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; &#x1f559;时间&#xff1a;…

git使用及常用命令

在初入公司中&#xff0c;若使用的是git管理工具&#xff0c;需要做以下步骤&#xff1a; 1&#xff0c;常用命令在&#xff1a; &#xff08;1&#xff09;&#xff0c;git config --global user.name xxx(名字) //若不设置 那么下次提交代码时会报错 其次该设置名字和…

go语言实现高性能自定义ip管理模块(ip黑名单)

ip黑名单设计 对于IPV4而言&#xff0c;理论上有256^4个&#xff0c;也就是约42亿个。我想了好久&#xff0c;也查了挺多资料&#xff0c;但是&#xff0c;确实没有通用现成的解决方案。 PS&#xff1a;以下方案的讨论&#xff0c;适用于对于IP管理不那么严苛的情况。当然也可…

代码随想录二刷|两两交换链表中的节点

两两交换链表中的节点 1、需要哪几个指针&#xff1f; cur&#xff1a;当前遍历的节点 tmp&#xff1a;节点“1” tmp1&#xff1a;节点“3” &#xff08;cur要指向当前要交换的两个节点的前一个节点&#xff09; 2、为什么不需要保存节点“2”&#xff1f; 因为就是cur->…

gitlab安装配置及应用

安装 ##安装依赖 yum install -y curl policycoreutils-python openssh-server perl#上传包 rz gitlab-jh-16.5.2-jh.0.el7.x86_64.rpm 安装 yum install gitlab-jh-16.0.3-jh.0.el7.x86_64.rpm 初始化并启动 # 以下两种方法都可以配置访问地址&#xff0c;第一种需要在yum安…

git使用记录

初始化仓库 git init 与远程仓库进行联接 git remote add origin &#xff08;仓库复制下来的地址&#xff09; 拉取远程仓库代码 #查看远程分支 git branch -r #查看本地分支 git branch #拉取远程分支&#xff0c;会产生映射关系 使用该方式会在本地新建分支x&#xff0c;并…

使用Nodejs和Express构建http响应流实现下载功能

首先创建一个文件流来读取要下载的文件&#xff0c;当然可以是动态产生的输入流 const fileStream fs.createReadStream(test.zip);然后创建响应头&#xff0c;指定响应的类型&#xff0c;同时也可以使用Content-Disposition设置浏览器下载时需要保存的文件名 const head {…

深度学习之二(前馈神经网络--Feedforward Neural Network)

概念 前馈神经网络(Feedforward Neural Network)是一种最基本的神经网络结构,也被称为多层感知器(Multilayer Perceptron,MLP)。它的特点是信息只在网络中单向传播,不会形成环路。每一层神经元的输出都作为下一层神经元的输入,没有反馈回路。 结构: 前馈神经网络通…

基于SpringBoot的花店销售网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的花店销售网站,java项目…