简介

贪心算法

思路

填2个数量最多的字母,如果下一次该字母数量还是最多的,填1个数量次多的字母

code

class Solution1405 {
public:
string longestDiverseString(int a, int b, int c) {
vector<pair<int, char>> v;
v.push_back(make_pair(a, 'a'));
v.push_back(make_pair(b, 'b'));
v.push_back(make_pair(c, 'c'));
string ans;
while(v[0].first || v[1].first || v[2].first) {
sort(v.rbegin(), v.rend());
if(ans.empty() || ans.back()!=v[0].second) {
if(v[0].first-- > 0) ans = ans + v[0].second;
if(v[0].first-- > 0) ans = ans + v[0].second;
}
else{
if(v[1].first-- > 0) ans = ans + v[1].second;
else break;
}
}
return ans;
}
};

leetcode 1405的更多相关文章

  1. 【LeetCode】1405. 最长快乐字符串 Longest Happy String

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 贪心 日期 题目地址:https://leetcode ...

  2. LeetCode.接雨水

    题外话:LeetCode上一个测试用例总是通不过(我在文章末贴出通不过的测试用例),给的原因是超出运行时间,我拿那个测试用例试了下2.037ms运行完.我自己强行给加了这句: && m ...

  3. 我为什么要写LeetCode的博客?

    # 增强学习成果 有一个研究成果,在学习中传授他人知识和讨论是最高效的做法,而看书则是最低效的做法(具体研究成果没找到地址).我写LeetCode博客主要目的是增强学习成果.当然,我也想出名,然而不知 ...

  4. LeetCode All in One 题目讲解汇总(持续更新中...)

    终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 477 Total Hamming Distance ...

  5. [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  6. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  7. Leetcode 笔记 112 - Path Sum

    题目链接:Path Sum | LeetCode OJ Given a binary tree and a sum, determine if the tree has a root-to-leaf ...

  8. Leetcode 笔记 110 - Balanced Binary Tree

    题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...

  9. Leetcode 笔记 100 - Same Tree

    题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...

  10. Leetcode 笔记 99 - Recover Binary Search Tree

    题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...

随机推荐

  1. 基础 DP 做题记录

    Luogu P1192 台阶问题 Link 简要题意: 给定台阶数 \(n\le10^5\) 和一步至多跨越台阶数 \(k\le10^2\) ,初始在 \(0\) 级,求方案数 \(\pmod {10 ...

  2. java中堆污染(heap pollution)以及@SafeVarargs注解使用

    什么是堆污染 heap pollution 堆污染发生在使用可变参数(varargs)或泛型时,将不兼容的类型插入到一个泛型对象中.这会导致在运行时尝试访问这些对象时发生 ClassCastExcep ...

  3. 记录一次SpringBoot + Vue前后分离项目的部署流程

    前言 本教程使用黑马 SpringBoot3+Vue3全套视频教程 大事件项目作为前后端代码. 前置需要: mysql jdk redis nginx linux环境 打包 前端 构建项目命令 npm ...

  4. CatBoost算法原理及Python实现

    一.概述   CatBoost 是在传统GBDT基础上改进和优化的一种算法,由俄罗斯 Yandex 公司开发,于2017 年开源,在处理类别型特征和防止过拟合方面有独特优势.   在实际数据中,存在大 ...

  5. C#/.NET/.NET Core技术前沿周刊 | 第 37 期(2025年5.1-5.11)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  6. Seata源码—2.seata-samples项目介绍

    大纲 1.seata-samples的配置文件和启动类 2.seata-samples业务服务启动时的核心工作 3.seata-samples库存服务的连接池配置 4.Seata对数据库连接池代理配置 ...

  7. Typora中markdown文件无法识别行内公式(内联公式)

    行内公式属于LaTeX扩展语法,而不属于Markdown的通用标准.为了使Typora予以解析,需要在Typora的"文件"-"偏好设置"中,勾选"内 ...

  8. 操作系统:虚拟机内核--KVM是什么

    随着云计算.大数据和分布式技术的演进,我们需要在一台服务器上虚拟化出更多虚拟机,还要让这些虚拟机能够弹性伸缩,实现跨主机的迁移. 而虚拟化技术正是这些能力的基石. 亚马逊.阿里.腾讯等知名公司用到的云 ...

  9. Intellij IDEA 关闭和开启自动更新提示

    Intellij IDEA 几乎所有的设置操作都在 file ->settings 下,进入Settings页面,在左侧搜索框输入updates关键字,取消勾选Automatically che ...

  10. MySQL中自增长序列(@i:=@i+1)的用处及用法

    问题分析    Oracle中的伪列 ROWNUM 是一组递增的序列,在查询数据时生成,为结果集中每一行标识一个行号, 每条记录会因为输出的顺序不同而获得不同的逻辑编号:此自增长序列可以视作起始值为 ...