1.トピック
LCP 66. 最小ブース数
2.アイデア
- まず、毎日必要なブースの数を数えます。
- 次に、各タイプのブースの最大数を選択します。
- 最後に、各ブースの最大数を加算して返します。
- テスト ケース 1 を例にすると、この図で理解しやすくなります。
3. コードの実装
var minNumBooths = function(demand) {
let arr = new Array(26).fill(0)
for (let str of demand) {
let map = new Map()
for (let i = 0; i < str.length; i++) {
let key = str.charCodeAt(i) - 97
map.set(key, (map.get(key) || 0) + 1)
}
for (let [key, val] of map) {
arr[key] = Math.max(val, arr[key])
}
}
let cnt = 0
arr.forEach(item => cnt += item)
return cnt
};
4. 参考
[Han Ergou] Go/Java/JavaScript Hash + Analog Double Hundred