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

news2025/1/10 1:43:08

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

开篇

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

题目链接: 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() - 1
            if(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.coloradmin.cn/o/1232590.html

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

相关文章

【机器学习】036_权重衰退

一、范数 定义&#xff1a;向量的范数表示一个向量有多大&#xff08;分量的大小&#xff09; L1范数&#xff1a; 即向量元素绝对值之和&#xff0c;用符号 ‖ v ‖ 1 表示。 公式&#xff1a; L2范数&#xff1a; 即向量的模&#xff0c;向量各元素绝对值的平方之和再…

对一个Series序列内的元素逐个扩展同一聚合操作一个序列中共有m个元素,从指定的第n个元素开始,对前i元素进行聚合计算Series.expanding()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 一个序列中共有m个元素 从指定的第n个元素开始 对前i元素进行聚合计算 其中&#xff1a;n < i < m 聚合计算&#xff1a;求最大、平均值等 Series.expanding(n).max() Series.expanding(…

重磅,瑞士药监局 发布 EU GMP附录1《无菌药品生产》官方解读!

近日&#xff0c;瑞士药监局发布了EU GMP附录1《无菌药品生产》&#xff08;同时也是PIC/S和WHO GMP附录1&#xff09;的解读文件&#xff0c;该文件侧重于新版EU、PIC/S和WHO GMP附录1的一些最重要的变化&#xff0c;也涵盖了长期以来反复引起问题的方面。反映了检查员对这些主…

HALCON中的运算符和控制流算子

HALCON中的运算符 Haclon中的运算符包括算术运算符、逻辑运算符、关系运算符&#xff0c;其功能和用法与C语言相类似。但HALCON中每个运算符都有一个算子相对应&#xff0c;如表2-2所示。 HALCON中的控制流算子 HALCON通过控制流算子来控制程序的走向&#xff0c;包括条件选…

MQTT协议消息代理服务远程连接

目录 1. Linux 搭建 Mosquitto 2. Linux 安装Cpolar 3. 创建MQTT服务公网连接地址 4. 客户端远程连接MQTT服务 5. 代码调用MQTT服务 6. 固定连接TCP公网地址 7. 固定地址连接测试 Mosquitto是一个开源的消息代理&#xff0c;它实现了MQTT协议版本3.1和3.1.1。它可以在不…

在浏览器中使用WebRTC获取用户IP地址

本文翻译自 Discover WebRTC: Obtain User IP Addresses in the Browser&#xff0c;作者&#xff1a;Zack&#xff0c; 略有删改。 如果需要在程序中获取当前用户的IP&#xff0c;通常手段都是需要使用服务器。但现在借助WebRTC的强大功能&#xff0c;我们可以直接在浏览器客户…

你知道如何实现游戏中的透视效果吗?

引言 游戏中的透视效果可以合理运用CtrlCV实现。 不知道大家有没有这样一段经历&#xff1a;在做Cocos项目时需要一些特定的Shader去做一些特定的效果&#xff0c;例如透视、高光、滤镜等等&#xff0c;想自己写吧&#xff0c;不怎么会啊&#xff0c;网上又找不到&#xff0c…

Gensim库——文本处理和主题建模的强大工具

在信息时代&#xff0c;海量的文本数据不断地涌现。如何从这如山如海的文本中提取有意义的信息&#xff0c;成为了一项关键任务。Python语言提供了许多优秀的库和工具来处理文本数据&#xff0c;其中一款备受推崇的工具就是Gensim库。Gensim是一个开源的Python库&#xff0c;它…

ESP32 MicroPython AI摄像头应用⑩

ESP32 MicroPython AI摄像头应用⑩ 1、AI摄像头应用2、移动检测&#xff08;LCD显示&#xff09;3、实验内容3、参考代码4、实验结果 1、AI摄像头应用 我们小车MCU支持AI(人工智能)加速&#xff0c;可以用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)…

Haclon简介及数据类型

Haclon简介 HALCON是由德国MVtec公司开发的机器视觉算法包&#xff0c;它由一千多个各自独立的函数&#xff08;算子&#xff09;构成&#xff0c;其中除了包含各类滤波、色彩以及几何、数学转换、形态学计算分析、图像校正&#xff0c;目标分类辨识、形状搜寻等基本的图像处理…

【SEO学习】专家优化

创建、编辑和推广独特的高质量内容既困难又耗时。如果你真的认真对待搜索引擎优化&#xff0c;但却没有取得预期效果&#xff0c;那么最好聘请一位搜索引擎优化专家。 搜索引擎优化专家会执行以下任务&#xff1a; 代码验证和清理 - 确保代码对搜索引擎友好并符合标准。网站结…

CentOS7安装Docker遇到的问题笔记

笔记/朱季谦 以下是笔者本人学习搭建docker过程当中记录的一些实践笔记&#xff0c;过程当中也遇到了一些坑&#xff0c;但都解决了&#xff0c;就此记录&#xff0c;留作以后再次搭建时可以直接参考。 一、首先&#xff0c;先检查CentOS版本&#xff0c;保证在CentOS7版本以…

Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)

Linux 软件包管理器 yum 什么是软件包&#xff1a; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通…

【opencv】debug报错HEAP CORRUPTION DETECTED

运行至第一句涉及矩阵运算的代码&#xff08;如cv::multiply&#xff09;时报错 HEAP CORRUPTION DETECTED: after Normal block (#45034) at 0x000001BDC586F0E0. CRT detected that the application wrote to memory after end of heap buffer.release下不会报错&#xff0…

探索人工智能领域——每日30个名词详解【day4】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

(免费领源码)python#flask#mysql旅游数据可视化81319-计算机毕业设计项目选题推荐

摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对旅游数据可视化等问题&#xff0c;对旅游数据…

vscode设置前进、后退快捷键

前言 在我们使用vscode编写程序时&#xff0c;经常需要在不同的文件之间跳来跳去&#xff0c;如果只是依靠个人记忆去操作会显得非常不方便。本文介绍如何设置vscode的前进、后退快捷键。 1 vscode设置前进、后退快捷键 点击“设置”图标&#xff0c;然后点击“键盘快捷方式…

注解案例:山寨Junit与山寨JPA

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 上篇讲了什么是注解&am…

一文讲明 网络调试助手的基本使用 NetAssist

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 &#x1f3f7;️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

初刷leetcode题目(7)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…