-
Notifications
You must be signed in to change notification settings - Fork 3
/
CountLargestGroup1399.kt
60 lines (54 loc) · 1.2 KB
/
CountLargestGroup1399.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package easy
/*
Given an integer n. Each number from 1 to n is grouped according to the sum of its digits.
Return how many groups 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.
Example 3:
Input: n = 15
Output: 6
Example 4:
Input: n = 24
Output: 5
*/
fun countLargestGroup(n: Int): Int {
val map =HashMap<Int,Int>()
for(i in 1..n)
{
if(i in 1..9)
map[i]=1
else
{
var result=0
var num=i
while(num!=0)
{
result+=num%10
num/=10
}
map[result]=(map[result]?:0).plus(1)
}
}
var max=Int.MIN_VALUE
var count=0
map.entries.forEach {entry->
if(entry.value>max)
{
max=entry.value
}
}
map.entries.forEach {entry->
if(entry.value==max)
{
count++
}
}
return count
}