Viết hàm nhận số nguyên dương n. Nhóm các số 1..n theo tổng chữ số. Trả về kích thước nhóm lớn nhất.
Ví dụ: num=15 → 2 (các nhóm: [1,10], [2,11], [3,12], [4,13], [5,14], [6,15], [7], [8], [9]).
Ví dụ
const num = 67;
const countLargestGroup = (num = 1) => {
if (num < 10) return num;
let res = 0, temp = 0;
let map = {};
for (let i = 1; i <= num; i++) {
let sum = 0, n = i;
while (n) { sum += n % 10; n = Math.floor(n / 10); }
if (map[sum] != undefined) map[sum]++;
else map[sum] = 1;
}
for (const key of Object.keys(map)) {
if (temp == map[key]) res++;
else if (temp < map[key]) { res = 1; temp = map[key]; }
}
return res;
};
console.log(countLargestGroup(num));
Kết quả
4