Problem Statement
leetcode problem link
Brute Force [Accepted]
class Solution:
def countLargestGroup(self, n: int) -> int:
group = defaultdict(list)
res = 0
largest_group = 0
for i in range(1, n + 1):
sum_val = 0
num = i
while i > 0:
sum_val += (i % 10)
i //= 10
group[sum_val].append(num)
largest_group = max(largest_group, len(group[sum_val]))
for arr in group.values():
if len(arr) == largest_group:
res += 1
return res
Editorial
Approach: Hash Map
class Solution:
def countLargestGroup(self, n: int) -> int:
hashMap = collections.Counter()
for i in range(1, n + 1):
key = sum([int(x) for x in str(i)])
hashMap[key] += 1
maxValue = max(hashMap.values())
count = sum(1 for v in hashMap.values() if v == maxValue)
return count