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
|
var maximumSum = function (nums) { const m = new Map(); let result = -1; for (let i = 0; i < nums.length; i++) { let sum = sumOfDigits(nums[i]); if (!m.has(sum)) { m.set(sum, nums[i]); } else { result = Math.max(result, nums[i] + m.get(sum)); m.set(sum, Math.max(m.get(sum), nums[i])); } } return result; };
function sumOfDigits(n) { let strNum = Math.abs(n).toString(); let digitSum = strNum.split("").reduce((sum, digit) => sum + parseInt(digit), 0); return digitSum; }
console.log( maximumSum([ 229, 398, 269, 317, 420, 464, 491, 218, 439, 153, 482, 169, 411, 93, 147, 50, 347, 210, 251, 366, 401, ]), );
|