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

力扣每日一题-美化数组的最少删除数-2023.11.21

    力扣每日一题:美化数组的最少删除数

开篇

  今天的力扣每日一题居然写出来了,好开心,迫不及待地把题目分享出来,希望你也能把它狠狠拿下。

题目链接: 2216.美化数组的最少删除数

题目描述

在这里插入图片描述

代码思路

  创建一个list集合来保存数组,方便删除操作。在集合中根据题目要求,对偶数下标的元素进行判断,然后删除不符合要求的元素,并统计删除次数。最后返回删除次数即可。

代码纯享版

class Solution {public int minDeletion(int[] nums) {int sum = 0;List<Integer> list = new ArrayList<>();for(int num: nums) list.add(num);for(int i = 0; i < list.size() - 1; i++){if(i % 2 == 0 && list.get(i).equals(list.get(i + 1))){list.remove(i);i--;sum++;}}if(list.size() % 2 != 0) sum++;return sum;}
}

代码逐行解析版

class Solution {public int minDeletion(int[] nums) {int sum = 0;//统计删除数量List<Integer> list = new ArrayList<>(); //创建list集合,方便删除操作for(int num: nums) list.add(num); //将数组元素全部添加到list中,用list来进行下面操作for(int i = 0; i < list.size() - 1; i++){ //因为下面会比较到i+1下标,所以这里是i < list.size() - 1if(i % 2 == 0 && list.get(i).equals(list.get(i + 1))){  //寻找需要被删除的元素list.remove(i); //删除该元素i--; //删掉一个数后,会左移1位sum++;//删除数量加1}}if(list.size() % 2 != 0) sum++; //如果数组长度不是偶数,要再删掉一个return sum;//返回删除的数量}

其它解法

  只能说大佬的代码总是优雅整洁又高效的,这个for循环中的i=i+2简直是让我醍醐灌顶

// 贪心,总是优先删除数组靠前的元素
class Solution {public int minDeletion(int[] nums) {int n = nums.length, res = 0;// 进入的i总是作为奇数位for(int i = 1; i<n; i = i+2){if(nums[i] == nums[i-1]){res++;i--;}}return (n - res) % 2 == 0 ? res : res + 1;}

结语

  如果对这道题的分享对您有帮助,点个关注,我会每天分享力扣题的讲解,与大伙儿一起向前迈进。

http://www.lryc.cn/news/237544.html

相关文章:

  • 【练习】检测U盘并自动复制内容到电脑的软件
  • 【计算机毕业设计】Springboot高校论文管理系统 -96280,免费送源码,【开题选题+程序定制+论文书写+答辩ppt书写-原创定制程序】
  • nginx 代理接口报404 问题排查
  • JVM 调优指南
  • 澳洲猫罐头如何?我亲自喂养过的优质猫罐头分享
  • CISP练习测试题
  • 2023下半年软件设计师考试知识点大全思维导图
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • Android Binder 跨进程通信的优势是什么
  • HashMap的详细解读
  • 10个好用的Mac数据恢复软件推荐—恢复率高达99%
  • EtherCAT从站EEPROM分类附加信息详解:RXPDO(输入过程数据对象)
  • 释放锁流程源码剖析
  • ComText让机器人有了情节记忆
  • 【Leetcode合集】13. 罗马数字转整数
  • centos oracle11g开启归档模式
  • 【数据结构初阶】双链表
  • Django实战:从零到一构建安全高效的Web应用
  • Docker build报错总结,版本过新大避雷!
  • spider 网页爬虫中的 AWS 实例数据获取问题及解决方案
  • flink的window和windowAll的区别
  • 【机器学习】特征工程:特征选择、数据降维、PCA
  • 短视频账号矩阵系统saas管理私信回复管理系统
  • 利用ETLCloud自动化流程实现业务系统数据快速同步至数仓
  • 学习c#的第十六天
  • 【论文阅读笔记】Deep learning for time series classification: a review
  • 如何将vscode和Linux远程链接:
  • 快速傅立叶卷积(FFC)
  • 藏头诗(C语言)
  • 适合您的智能手机的 7 款优秀手机数据恢复软件分享