【leetcode】LCP 66.最小小間数(jsで実装)

1.トピック

LCP 66. 最小ブース数
ここに画像の説明を挿入

2.アイデア

  1. まず、毎日必要なブースの数を数えます。
  2. 次に、各タイプのブースの最大数を選択します。
  3. 最後に、各ブースの最大数を加算して返します。
  • テスト ケース 1 を例にすると、この図で理解しやすくなります。
    ここに画像の説明を挿入

3. コードの実装

/**
 * @param {string[]} demand
 * @return {number}
 */
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

おすすめ

転載: blog.csdn.net/weixin_44109827/article/details/129416999