Max Pair Sum in an Array
EasyArrayHash Table
Solution
export function maxSum(nums: number[]): number {
function getMaxDigit(num: number) {
let maxDigit = 0;
while (0 < num) {
maxDigit = Math.max(maxDigit, num % 10);
num = Math.floor(num / 10);
}
return maxDigit;
}
let answer = -1;
const maxByDigit = new Map<number, number>();
for (const num of nums) {
const maxDigit = getMaxDigit(num);
const prevMaxNum = maxByDigit.get(maxDigit);
if (prevMaxNum !== undefined) {
answer = Math.max(answer, prevMaxNum + num);
maxByDigit.set(maxDigit, Math.max(prevMaxNum, num));
} else {
maxByDigit.set(maxDigit, num);
}
}
return answer;
}