每日一题——LeetCode1189.气球的最大数量

发布时间:2024年01月14日

方法一 个人方法:

统计text字符串中'b'、'a'、'l'、'o'、'n'?这几个字符出现的次数

l和n需要两个才能拼成一个balloon,所以碰到l和o加1,其他字符加2

最后求出出现次数最少的那个字符再除以2就是能拼凑成的单词数量,避免出现小数要使用向下取整

var maxNumberOfBalloons = function(text) {
    var arr={b:0,a:0,l:0,o:0,n:0},min=9999
    for(const char of text){
        if(arr[char]>=0){
           if(char=='l' || char=='o'){
               arr[char]++
           }else{
               arr[char]+=2
           }
        }
    }
    for(const char in arr){
        min=arr[char]<min?arr[char]:min
    }
    console.log(arr,min)
    min=Math.floor(min/2)
    return min
};

消耗时间和内存情况:

方法二 统计法

思路和方法一差不多,但写法有区别

var maxNumberOfBalloons = function(text) {
    const cnt = new Array(5).fill(0);
    for (const ch of text) {
        if (ch === 'b') {
            cnt[0]++;
        } else if (ch === 'a') {
            cnt[1]++;
        } else if (ch === 'l') {
            cnt[2]++;
        } else if (ch === 'o') {
            cnt[3]++;
        } else if (ch === 'n') {
            cnt[4]++;
        }
    }
    cnt[2] = Math.floor(cnt[2] / 2);
    cnt[3] = Math.floor(cnt[3] / 2);
    return _.min(cnt);
};

消耗时间和内存情况:

文章来源:https://blog.csdn.net/weixin_52878347/article/details/135582514
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。