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

总结:

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


相关推荐
hanbr2 小时前
C++ 初涉
开发语言·c++
Дерек的学习记录2 小时前
C++:入门基础(下)
开发语言·数据结构·c++·学习·算法·visualstudio
云深麋鹿3 小时前
标准库中的String类
开发语言·c++·容器
滴滴答滴答答4 小时前
LeetCode Hot100 之 16 合并两个有序链表
算法·leetcode·链表
圣保罗的大教堂4 小时前
leetcode 3713. 最长的平衡子串 I 中等
leetcode
愚者游世5 小时前
力扣解决二进制 | 题型常用知识点梳理
c++·程序人生·算法·leetcode·职场和发展
蜡笔小马5 小时前
15.Boost.Geometry 坐标系统详解
c++·boost
AD钙奶-lalala5 小时前
Android编译C++代码步骤详解
android·开发语言·c++
rhett. li6 小时前
FreeBSD系统中使用clang/clang++编译Skia源码的方法
c++·ui·用户界面
_风华ts6 小时前
C++函数指针
c++·函数指针