如何整理做网站的素材,德阳装修公司,网站建设微信开发,中国高定十大品牌目录 2216. 美化数组的最少删除数
题目描述#xff1a;
实现代码与解析#xff1a;
贪心#xff1a;
原理思路#xff1a; 2216. 美化数组的最少删除数
题目描述#xff1a; 给你一个下标从 0 开始的整数数组 nums #xff0c;如果满足下述条件#xff0c;则认为数…目录 2216. 美化数组的最少删除数
题目描述
实现代码与解析
贪心
原理思路 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 1050 nums[i] 105
实现代码与解析
贪心
class Solution {
public:int minDeletion(vectorint nums) {int res 0, n nums.size();for (int i 0; i n - 1;) {int j i 1;while (j n nums[i] nums[j]) {j;res;}i j 1;}if ((n - res) % 2 1) res;return res;}
};
原理思路 遍历一遍只要不符合就删除即可。 注意最后数组必须是偶数判断一下要是奇数就多删除一共。