网站运营风险分析,外贸网站 免费模板 使用 zencart,自建站外贸平台有哪些比较好,教育机构招聘网站建设#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜CSDN-Java领域新星创作者保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 算法题 目录 题目链接⛲ 题目描述 求解思路实现代码运行结果⚡ 贪心 求解思路 实现代码 运行结果 共勉 题目链接
2216. 美化数组的最少删除数
⛲ 题目描述
给你一个下标从 0 开始的整数数组 nums 如果满足下述条件则认为数组 nums 是一个 美丽数组
nums.length 为偶数 对所有满足 i % 2 0 的下标 i nums[i] ! nums[i 1] 均成立 注意空数组同样认为是美丽数组。
你可以从 nums 中删除任意数量的元素。当你删除一个元素时被删除元素右侧的所有元素将会向左移动一个单位以填补空缺而左侧的元素将会保持 不变 。
返回使 nums 变为美丽数组所需删除的 最少 元素数目。
示例 1
输入nums [1,1,2,3,5] 输出1 解释可以删除 nums[0] 或 nums[1] 这样得到的 nums [1,2,3,5] 是一个美丽数组。可以证明要想使 nums 变为美丽数组至少需要删除 1 个元素。 示例 2
输入nums [1,1,2,2,3,3] 输出2 解释可以删除 nums[0] 和 nums[5] 这样得到的 nums [1,2,2,3] 是一个美丽数组。可以证明要想使 nums 变为美丽数组至少需要删除 2 个元素。
提示
1 nums.length 105 0 nums[i] 105 求解思路实现代码运行结果 ⚡ 贪心 求解思路
这题通过贪心来求解从所有偶数下标的位置开始判断如果出现相邻位置相等的情况此时需要删除元素i下标减一继续重新判断直接循环结束。还需要注意一点循环结束容易忽略一种情况判断删除完cnt元素后此时数组的长度如果是偶数直接跳过如果是奇数按照题目要求必须再删除一个。具体实现代码如下 实现代码
class Solution {public int minDeletion(int[] nums) {int cnt0,nnums.length;// 判断所有偶数下标的位置for(int i0;in-1;i2){// 如果出现相邻位置相等的情况此时需要删除元素i下标减一继续重新判断if(nums[i]nums[i1]){cnt;i--;}}// 判断此时数组的长度,如果为奇数,还需要再删除一个if((n-cnt)%21){cnt;}return cnt;}
}运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉