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

​​题目来源:

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;
    }
};
复制代码

总结:

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


相关推荐
charlie11451419114 分钟前
Cinux: 加载第一个内核:从 bootloader 跳进 C++
linux·开发语言·c++·嵌入式
QiLinkOS1 小时前
第三视觉理解徐玉生与他的商业活动(28)
大数据·c++·人工智能·算法·开源协议
星夜夏空991 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
wabs6662 小时前
关于动态规划【力扣1143.最长公共子序列的思考】
算法·leetcode·动态规划
剑挑星河月2 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
会周易的程序员3 小时前
microLog 后端开发指南
开发语言·c++·物联网·设计模式·日志·iot·aiot
笨笨没好名字4 小时前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
汉克老师4 小时前
GESP2026年6月认证C++二级( 第三部分编程题(2、菱形))精讲
c++·找规律·绘制图形·对角线·双重循环
☆cwlulu4 小时前
try-throw-catch异常捕获流程
开发语言·c++
王老师青少年编程5 小时前
2026年6月GESP真题及题解(C++五级):排排坐
c++·题解·真题·gesp·五级·2026年6月·排排坐