力扣-1742. 盒子中小球的最大数量

本文最后更新于:2022年11月27日 下午

题目描述

1742

思路及实现

既然盒子的编号等于小球编号上每位数字的和,而且我们需要记住每个盒子里边的小球数量,那就用dict吧;
相信求一个数字每位上的和对每位程序员来说是再熟悉不过的了,那这题的代码自然一下就出来了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution:
def countBalls(self, lowLimit: int, highLimit: int) -> int:
ans = 0
boxes = dict()
num = 0
for ball in range(lowLimit, highLimit + 1):
while ball != 0:
num += ball % 10
ball = ball // 10
if num in boxes:
boxes[num] = boxes[num] + 1
else:
boxes[num] = 1
ans = max(boxes[num], ans)
num = 0
return ans

PS:这题还能找规律,看了下“爪哇缪斯”的题解,牛蛙!B球所在箱子编号 = A球所在箱子编号 - (9 * [末尾9的个数])+ 1,B球就是跟在A球后面的第一个球,比如2是B球那1就是A球。


这里有一只爱丽丝

希望本文章能够帮到您~


力扣-1742. 盒子中小球的最大数量
https://map1e-g.github.io/2022/11/27/leetcode-1742/
作者
MaP1e-G
发布于
2022年11月27日
许可协议