每日一题:16. “气球” 的最大数量 (C++)
题目:
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 “balloon”。
示例 1:
输入:text = “nlaebolko”
输出:1
示例 2:
输入:text = “loonbalxballpoon”
输出:2
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-balloons
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
将所有字母个数记录入数组,循环依次减去目标单词字母,若字母个数小于0则说明无法凑齐一个单词,返回能够拼成单词个数,每次循环结束单词个数加一。
本题解可以范式使用,对于所有目标单词都可以得到拼出个数。
数组代码
class Solution {
public:string target = "balloon";//保存目标单词int words[26], result = 0, *record;//words记录所有字母个数;result保存拼出单词个数;record保存字母在字母表里对应的下标位置。int maxNumberOfBalloons(string text) {int lengths = target.length();//保存目标单词长度。record = (int*)calloc(lengths, sizeof(int));for(int i = 0; i < lengths; i++){record[i] = target[i] - 97;}for(auto i : text){words[i - 97]++;}while(true){//循环依次减去对应单词字母个数for(int i = 0; i < lengths; i ++){if(--words[record[i]] < 0){return result;}//字母个数小于0说明无法拼成一个单词,结束循环返回个数}result ++;//完成一次单词循环,个数加一}return result;}
};
哈希表代码
class Solution {
public:string target = "balloon";int maxNumberOfBalloons(string text) {int result = 0;unordered_map<char, int> record;for(auto i : text){record[i]++;}while(true){for(auto i : target){if(--record[i] < 0){return result;}}result ++;}return result;}
};
作者:yi-si-cb
链接:https://leetcode-cn.com/problems/maximum-number-of-balloons/solution/xie-shi-shu-zu-ha-xi-c-by-yi-si-cb-jvgy/
每日一题:16. “气球” 的最大数量 (C++)相关推荐
- SQL每日一题(20201030)QTY表示发货数量,MIN_QTY表示最小发货量
SQL每日一题(20211222) SQL每日一题(20220517) /** 此题涉及到递归,先用oracle的方法来解决 1.先用ceil函数来得到需要几次 比如celi(170/100) 需要2 ...
- LeetCode简单题之“气球” 的最大数量
题目 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球). 字符串 text 中的每个字母最多只能被使用一次.请你返回最多可以 ...
- LeetCode 每日一题 1833. 雪糕的最大数量
1833. 雪糕的最大数量 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金 ...
- 《LeetCode之每日一题》:148.回旋镖的数量
回旋镖的数量 有关题目 题解 题目链接: 回旋镖的数量 有关题目 给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] .回旋镖 是由点 (i, j, k ...
- 「 每日一练,快乐水题 」1189. “气球” 的最大数量
✅力扣原题: 力扣链接:1189. "气球" 的最大数量 ✅题目简述: 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon&q ...
- 每日一题_447.回旋镖的数量
每日一题_447.回旋镖的数量 leetcode 447 题目: 题意分析: 今天的题目比较简单,没有复杂的算法,主要是用空间换时间.该题是给我们平面上一系列的点,这些点都在整数格点上,然后当其中一个 ...
- 「每日一题」回旋镖的数量
这是 LeetCode 上 2021-9-13 的每日一题:「447. 回旋镖的数量」 1. 题目描述 给定平面上n对互不相同的点points,其中points[i] = [xi, yi].回旋镖是由 ...
- LeetCode每日一题(22年1月7日-1月16日)
目录(每日一题) 1614. 括号的最大嵌套深度 89. 格雷编码 1629. 按键持续时间最长的键 306. 累加数 1036. 逃离大迷宫 334. 递增的三元子序列 747. 至少是其他数字两倍 ...
- 【每日一题】 1128. 等价多米诺骨牌对的数量
[每日一题] 1128. 等价多米诺骨牌对的数量 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 给你一个由一些多米诺骨牌组成的列表 dominoes. 如果其中某一张多米诺骨牌可 ...
- 【牛客每日一题】4.16 逆序对 ( 数学 , 排列组合 ,快速幂 , 快速乘 )
[每日一题]逆序对 链接:https://ac.nowcoder.com/acm/problem/14731 来源:牛客网 题目描述 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j ...
最新文章
- MySQL中文全文索引
- 技术主管和架构师的职责
- python之闭包的实现
- 一个好用的查看Angular应用ngrx状态的Chrome扩展:Redux devTools
- 自定义权限 android,如何在Android中使用自定义权限?
- 《戏说网络二三事》序1
- python删除对象引用_使用Python删除内存中的对象
- python discuz搜索api_Django用内置方法实现简单搜索功能的方法
- 计算机一级专题训练,计算机等级考试一级MSOFFICE综合训练试题
- 计算机可用内存分配失败,你们都被忽悠了! 其实可用内存大才有用
- 通过CSS来垂直居中文本
- 2019-4(2)-数据挖掘学习笔记
- Python 标准库 —— 文件解压(zip、gz、pkl、tar)
- 手机扫描电脑二维码登录原理
- Xcode6 app沙盒目录
- VulnHub-XXE
- 怎么去学习绘画格子裙?该怎么画格子裙?
- spring boot: Whitelabel Error Page(小白的终极解决方案)
- Redis看这一篇就够了
- (附源码)ssm+mysql+基于ssm技术的校自助阅览室的设计与实现 毕业设计242326