LCP 66. 最小展台数量
题目描述
力扣嘉年华将举办一系列展览活动,后勤部将负责为每场展览提供所需要的展台。 已知后勤部得到了一份需求清单,记录了近期展览所需要的展台类型, 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 <= 100demand[i][j]仅为小写字母
解法
方法一:计数
我们用哈希表或数组 \(cnt\) 记录当前可用的展台以及数量。
然后遍历 \(demand\),对于每一天,遍历该天的展台需求,如果 \(cnt\) 中有该展台,则将其数量减一,否则我们需要准备一个新的展台,答案加一。遍历结束后,将该天的所有展台都加入 \(cnt\) 中。
最后返回答案即可。
时间复杂度 \(O(L)\),空间复杂度 \(O(C)\)。其中 \(L\) 为 \(demand\) 中所有字符串的长度之和,而 \(C\) 为字符集的大小,本题中 \(C = 26\)。
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |