1742. 盒子中小球的最大數量(C++)
- 1 題目描述
- 2 示例描述
- 2.1 示例 1
- 2.2 示例 2
- 2.3 示例 3
- 3 解題提示
- 4 解題思路
- 5 原始碼詳解(C++)
1 題目描述
你在一家生產小球的玩具廠作業,有 n 個小球,編號從 lowLimit 開始,到 highLimit 結束(包括 lowLimit 和 highLimit ,即 n == highLimit - lowLimit + 1),另有無限數量的盒子,編號從 1 到 infinity ,
你的作業是將每個小球放入盒子中,其中盒子的編號應當等于小球編號上每位數字的和,例如,編號 321 的小球應當放入編號 3 + 2 + 1 = 6 的盒子,而編號 10 的小球應當放入編號 1 + 0 = 1 的盒子,
給你兩個整數 lowLimit 和 highLimit ,回傳放有最多小球的盒子中的小球數量,如果有多個盒子都滿足放有最多小球,只需回傳其中任一盒子的小球數量,
2 示例描述
2.1 示例 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.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 ,
2.3 示例 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 ,
3 解題提示
1 <= lowLimit <= highLimit <= 10^5
4 解題思路
寫一個函式累加個數位和的函式,再代入計算就好了,
5 原始碼詳解(C++)
class Solution {
public:
int arr[101] = { 0 } , index ;
int funcation( int n )
{
int res = 0 ;
while( n )
{
res = res + n % 10 ;
n = n / 10 ;
}
return res ;
}
int countBalls(int lowLimit, int highLimit) {
for ( int i = lowLimit ; i <= highLimit ; i ++ )
{
index = funcation( i ) ;
arr[index] ++ ;
}
int Max = -1 ;
for ( int i = 0 ; i < 100 ; i ++ )
{
Max = max ( Max , arr[i] ) ;
}
return Max ;
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264237.html
標籤:其他
上一篇:【三、打磚塊】
下一篇:2021-02-26
