Re: [閒聊] 每日leetcode
https://leetcode.com/problems/count-largest-group/description/
1399. Count Largest Group
給定一整數n,
將1到n的所有整數依各位數之和分組,
返回擁有最大長度之組別數目。
若n = 13,
則分組為[1,10], [2,11], [3,12], [4,13], [5], [6], [7], [8], [9],
有4組擁有2元素,
故返回4。
--
由於n最大僅到10000,
故位數之和的最大值為36(出現在9999),
直接用字典解決。
再遍歷1到n並用sum函數與列表生成式計算每個數字的位數之和,
記錄到字典中,
最後再統計與最大值相符的組別數目即可。
--
Python code:
class Solution:
def countLargestGroup(self, n: int) -> int:
d = {_:0 for _ in range(1, 37)}
for i in range(1, n + 1):
d[sum(int(_) for _ in str(i))] += 1
mx = max(d.values())
return sum((1 if d[_] == mx else 0) for _ in range(1, 37))
--
https://i.imgur.com/AhNjoAu.jpeg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.189.201 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1745420524.A.F6F.html
討論串 (同標題文章)
完整討論串 (本文為第 1404 之 1548 篇):