LeetCode-1742。ボックス内のボールの最大数(ボックス内のボールの最大数)-分析とコード(Java)

LeetCode-1742。ボックス内のボールの最大数[ボックス内のボールの最大数]-分析とコード[Java]

1.トピック

あなたは小さなボールを生産するおもちゃの工場で働いています。lowLimitからhighLimitまで番号が付けられたn個のボールがあります(lowLimitとhighLimitを含む、つまりn == highLimit-lowLimit + 1)。1から無限まで番号が付けられた無制限の数のボックスもあります。
あなたの仕事は、各ボールをボックスに入れることです。ボックス番号は、ボール番号の各番号の合計と等しくなければなりません。たとえば、番号321のボールは番号3 + 2 + 1 = 6のボックスに配置し、番号10のボールは番号1 + 0 = 1のボックスに配置する必要があります。
lowLimitとhighLimitの2つの整数を指定し、ボールが最も多いボックス内のボールの数を返します。ボールの最大数を満たすボックスが複数ある場合は、いずれかのボックスのボールの数を返すだけです。

例1:

输入:lowLimit = 1, highLimit = 10
输出:2
解释:
盒子编号:1 2 3 4 5 6 7 8 9 10 11 ...
小球数量:2 1 1 1 1 1 1 1 1 0  0  ...
编号 1 的盒子放有最多小球,小球数量为 2 。

例2:

输入:lowLimit = 5, highLimit = 15
输出:2
解释:
盒子编号:1 2 3 4 5 6 7 8 9 10 11 ...
小球数量:1 1 1 1 2 2 1 1 1 0  0  ...
编号 5 和 6 的盒子放有最多小球,每个盒子中的小球数量都是 2 。

例3:

输入:lowLimit = 19, highLimit = 28
输出:2
解释:
盒子编号:1 2 3 4 5 6 7 8 9 10 11 12 ...
小球数量:0 1 1 1 1 1 1 1 1 2  0  0  ...
编号 10 的盒子放有最多小球,小球数量为 2 。

促す:

  • 1 <= lowLimit <= highLimit <= 105

出典:LeetCode(LeetCode)
リンク:https://leetcode-cn.com/problems/maximum-number-of-balls-in-a-box
著作権はLeetCodeが所有しています商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。

2、分析とコード

1.1つずつ追加します

(1)考える

ボールを1つずつ箱に入れて判断します。

(2)コード

class Solution {
    
    
    public int countBalls(int lowLimit, int highLimit) {
    
    
        int lenMax = 46;
        int [] box = new int[lenMax];
        Arrays.fill(box, 0);
        for (int i = lowLimit; i <= highLimit; i++) {
    
    
            int s = 0;
            for (int num = i; num > 0; num /= 10)
                s += num % 10;
            box[s]++;
        }
        int ans = 0;
        for (int i = 0; i < lenMax; i++)
            ans = Math.max(ans, box[i]);
        return ans; 
    }
}

(3)結果

実行時間:24ミリ秒、
すべてのJava送信でユーザーの93.49%を上回っています。メモリ消費量:35.4 MB、すべてのJava送信でユーザーの72.49%を上回っています。

3、その他

何もありません。

おすすめ

転載: blog.csdn.net/zml66666/article/details/113804577