chắc đệ quy thôi nhỉ1399. Count Largest Group
You are given an integer n.
Each number from 1 to n is grouped according to the sum of its digits.
Return the number of groups that have the largest size.
Example 1:
Input: n = 13
Output: 4
Explanation: There are 9 groups in total, they are grouped according sum of its digits of numbers from 1 to 13:
[1,10], [2,11], [3,12], [4,13], [5], [6], [7], [8], [9].
There are 4 groups with largest size.
Example 2:
Input: n = 2
Output: 2
Explanation: There are 2 groups [1], [2] of size 1.
Constraints:
- 1 <= n <= 10<sup>4</sup>
Đệ quy ở digit_sum() fun hay sao ạ.chắc đệ quy thôi nhỉ
hơi giống đệ quy, nghĩ nhanh logic thế nàyĐệ quy ở digit_sum() fun hay sao ạ.
from collections import defaultdict
class Solution:
def sum_of_digits(self, n: int) -> int:
sum = 0
remain = n
while remain > 0:
sum = sum + remain % 10
remain = remain // 10
return sum
def countLargestGroup(self, n: int) -> int:
my_dict = defaultdict(list)
outp : dict = {}
for i in range(1, n+1):
sod = self.sum_of_digits(i)
my_dict[sod].append(i)
maxi = 0
for key in my_dict:
lk = len(my_dict[key])
if lk > maxi:
maxi = lk
if lk in outp:
outp[lk] = outp[lk] + 1
else:
outp[lk] = 1
return outp[maxi]