当前位置:首页 > 编程笔记 > 正文
已解决

2216.美化数组的最少删除数

来自网友在路上 194894提问 提问时间:2023-11-21 08:40:27阅读次数: 94

最佳答案 问答题库948位专家为你答疑解惑

​​题目来源:

        leetcode题目,网址:2216. 美化数组的最少删除数 - 力扣(LeetCode)

解题思路:

       假设在第 i 个位置前已删除 res 个元素。遍历原数组,对于第 i 个元素,若 (i-res)%2==0,则其在美化后数组的 位置是偶数,删去其后与其相连的相同元素并将 res 加上对应元素个数后,移动至第一个不相等元素处,否则直接跳过。最后判断 (nums.size()-res)%2 是否为 0, 若是 加一后返回,否则直接返回。

解题代码:

class Solution {
public:int minDeletion(vector<int>& nums) {int res=0;for(int i=0,cnt=0;i<nums.size();i++,cnt++){if(cnt%2!=0){continue;}for(int j=i+1;j<nums.size();j++){if(nums[i]==nums[j]){res++;i=j;}else{break;}}}if((nums.size()-res)%2!=0){res++;}return res;}
};
 

总结:

        官方题解在删除字符时,是从前往后删除,保留最后一个字符,而我是保留第一个字符。


查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"2216.美化数组的最少删除数":http://eshow365.cn/6-41068-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!