/** * @param {number[]} nums * @return {number} */ var maximumSum = function (nums) { const m = newMap(); let result = -1; // loop for (let i = 0; i < nums.length; i++) { let sum = sumOfDigits(nums[i]); if (!m.has(sum)) { m.set(sum, nums[i]); } else { // update result result = Math.max(result, nums[i] + m.get(sum)); // update hashmap m.set(sum, Math.max(m.get(sum), nums[i])); } } return result; };
// get sum of digits functionsumOfDigits(n) { let strNum = Math.abs(n).toString(); let digitSum = strNum.split("").reduce((sum, digit) => sum + parseInt(digit), 0); return digitSum; }