LCP 66-最小展台数量

Raphael Liu Lv10

力扣嘉年华将举办一系列展览活动,后勤部将负责为每场展览提供所需要的展台。 已知后勤部得到了一份需求清单,记录了近期展览所需要的展台类型,
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] 仅为小写字母

Problem: LCP 66. 最小展台数量

[TOC]

解题方法

查看注释

复杂度

  • 时间复杂度: O(n*n)

  • 空间复杂度: O(1)

Code

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

/**
* @param {string[]} demand
* @return {number}
*/
var minNumBooths = function(demand) {
let result = ''
demand.map(item=>{
let obj = {}
item.split('').map(element=>{
obj[element] = obj[element]||0
obj[element]++//计算每个字母出现的次数
if(result.indexOf(element)===-1){
result+=element//字母没有记录到reult中,就加入
}else if(obj[element]>1){
if(result.split(element).length-1<obj[element])//当字母出现次数大于1,就需要判断一下result中该字母的个数,如果少于字母出现的次数,就需要加入到result中
result+=element
}
})
})
return result.length
};
 Comments
On this page
LCP 66-最小展台数量