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

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.lryc.cn/news/238310.html

相关文章:

  • DDD 领域驱动设计
  • 转型做视频了,博客就是稿子,继续坚持写博客,同时发布视频,能写博客说明思路清晰了,能再讲明白,理解就更透彻了,紧跟上时代发展。
  • 小众市场:探索跨境电商中的利基领域
  • C++中的mutable关键字
  • java: 无效的目标发行版: 17 问题解决
  • C#的LINQ查询
  • Python不会调试不够丝滑?那事你不会logging---剖析!
  • OpenAI的Whisper蒸馏:蒸馏后的Distil-Whisper速度提升6倍
  • Ubuntu18.04安装LeGO-LOAM保姆级教程
  • git修改commit历史提交时间、作者
  • 【C++历练之路】list的重要接口||底层逻辑的三个封装以及模拟实现
  • Kubeadm部署Kubernetes Containerd集群
  • OpenCV入门9——目标识别(车辆统计)
  • 2023前端大厂高频面试题之JavaScript篇(5)
  • 物联网网关在工业行业的应用案例
  • 5、基础入门——资产架构端口应用WAF站库分离负载均衡
  • golang学习笔记——接口和继承比较1
  • chatGPT快捷键(最新版本)
  • 77基于matlab的蚁群优化路径算法,二维路径和三维路径优化
  • PyTorch中并行训练的几种方式
  • 基于非链式(数组)结点结构的二叉树的层序输入创建以及遍历
  • 云计算:开辟数字时代的无限可能
  • Django+Vue项目创建 跑通
  • 2023年中职“网络安全“—Linux系统渗透提权②
  • 多模态大模型训练数据集汇总介绍
  • IDEA中更换java项目JDK
  • C++函数
  • 设计模式-命令模式-笔记
  • 酒店品牌纷纷冲击中高端,东呈集团能否“快人一步”?
  • [hive] posexplode函数