本文主要是介绍Leetcode30-最小展台数量(66),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、题目
力扣嘉年华将举办一系列展览活动,后勤部将负责为每场展览提供所需要的展台。 已知后勤部得到了一份需求清单,记录了近期展览所需要的展台类型, demand[i][j] 表示第 i 天展览时第 j 个展台的类型。 在满足每一天展台需求的基础上,请返回后勤部需要准备的 最小 展台数量。
注意:
同一展台在不同天中可以重复使用。
示例 1:
输入:demand = [“acd”,“bed”,“accd”]
输出:6
解释: 第 0 天需要展台 a、c、d; 第 1 天需要展台 b、e、d; 第 2 天需要展台 a、c、c、d; 因此,后勤部准备 abccde 的展台,可以满足每天的展览需求;
示例 2:
输入:demand = [“abc”,“ab”,“ac”,“b”]
输出:3
提示:
1 <= demand.length,demand[i].length <= 100
demand[i][j] 仅为小写字母
2、解
实际含义即为:统计每个字符在同一个字符串中出现的最大次数。
int minNumBooths(vector<string> & demand){//存储出现的每个字符出现的次数unordered_map<char, int> charTimes;for(string &d : demand){//存储每个string中出现字符对应的次数unordered_map<char, int> cnt;for(auto s : d) cnt[s] ++;for(auto it = cnt.begin(); it != cnt.end(); it++){//更新charTimes字符出现次数对应同一个字符串中出现次数的最大值charTimes[it->first] = max(charTimes[it->first], it->second);}}int result = 0;for(auto it = charTimes.begin(); it != charTimes.end(); it++)result += it->second;return result;}
这篇关于Leetcode30-最小展台数量(66)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!