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

总结:

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


相关推荐
Irissgwe28 分钟前
顺序表和链表
数据结构·c++·链表·c·顺序表·线性表
牛油果子哥q39 分钟前
二叉树(Binary Tree)零基础精讲,树基础概念、树形分类、核心性质、递归/层序遍历、完整代码与面试考点全解
c++·面试·数据挖掘
玖玥拾1 小时前
C/C++ 数据结构(四)链表与STL容器
c语言·数据结构·c++·链表·stl库
不吃土豆的马铃薯1 小时前
C++ 正则表达式入门详解
linux·服务器·网络·数据库·c++·正则表达式
玖玥拾1 小时前
C/C++ 数据结构(一)基础概念、线性表链表
c语言·数据结构·c++·链表
星恒随风1 小时前
C++ 模板初阶:从泛型编程、函数模板到类模板,一篇打通基础概念
开发语言·c++·笔记·学习
郝学胜-神的一滴1 小时前
Qt 高级开发 031:QListWidget图标布局实战
开发语言·c++·qt·程序人生·软件构建·用户界面
QiLinkOS1 小时前
极客精神与商业思维的融合实践(3)
c语言·c++·人工智能·算法·开源协议
牛油果子哥q1 小时前
队列(Queue)深度精讲,先进先出原理、顺序/链式/循环队列、STL queue底层、栈队列互模拟与面试考点全解
开发语言·c++·面试
暖阳华笺1 小时前
【数据结构与算法】哈希专题
数据结构·c++·算法·leetcode·哈希算法