当前位置: 首页> 健康> 知识 > 苏州保洁公司招聘_东道设计招聘_现在最火的推广平台_口碑营销的模式

苏州保洁公司招聘_东道设计招聘_现在最火的推广平台_口碑营销的模式

时间:2025/7/12 15:39:11来源:https://blog.csdn.net/sjsjs11/article/details/143317018 浏览次数:0次
苏州保洁公司招聘_东道设计招聘_现在最火的推广平台_口碑营销的模式

给你一个下标从 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 个元素。

构造

class Solution {
public:int minDeletion(vector<int>& nums) {int i = 0, preNum = 0;for(int num : nums){if((i&1) == 0){preNum = num;i++;}else if(preNum != num){i++;}}return nums.size() - ((i&1) ? i-1 : i);}
};

时间复杂度:O(n),其中 n 是数组 nums 的长度。

空间复杂度:O(1)

力扣官方给出的解法个人觉得讲的比较难懂。我们可以采用构造最长完美数组的方式,然后通过原数组长度减去最长完美数组的长度,得到最少删除数。

我们定义一个变量i来记录在构造完美数组中的索引,当i为偶数的时候,我们就让原数组的元素为preNum,如果当i为奇数,并且nums不等于preNum的时候,那么我们可以将num放到i位置,然后我们让i++指向下一个位置。

由于i始终在最后一个元素往后一个位置,所以i的最后索引实际上就是最长完美数组的长度,并且最长完美数组要求长度是偶数,那么如果i不为偶数的话,我们就令他减1。

最后我们返回原数组长度减去完美数组长度即是删除数。

关键字:苏州保洁公司招聘_东道设计招聘_现在最火的推广平台_口碑营销的模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: