← All problems

2342. Max Sum of a Pair with Equal Sum of Digits

MediumOpen on LeetCodeProblem statement

Problem Statement

2342. Max Sum of a Pair With Equal Sum of Digits

Medium


You are given a 0-indexed array nums consisting of positive integers. You can choose two indices i and j, such that i != j, and the sum of digits of the number nums[i] is equal to that of nums[j].

Return the maximum value of nums[i] + nums[j] that you can obtain over all possible indices i and j that satisfy the conditions.

 

Example 1:

Input: nums = [18,43,36,13,7]
Output: 54
Explanation: The pairs (i, j) that satisfy the conditions are:
- (0, 2), both numbers have a sum of digits equal to 9, and their sum is 18 + 36 = 54.
- (1, 4), both numbers have a sum of digits equal to 7, and their sum is 43 + 7 = 50.
So the maximum sum that we can obtain is 54.

Example 2:

Input: nums = [10,12,19,14]
Output: -1
Explanation: There are no two numbers that satisfy the conditions, so we return -1.

 

Constraints:

Java

Source file
class Solution {
    public int maximumSum(int[] nums) {
        int ans = -1;
        Map<Integer, Integer> sumOfDigits = new HashMap<>();
        for(int i: nums){
            int sum = findSumOfDigits(i);
            if(sumOfDigits.containsKey(sum))
                ans = Math.max(ans, sumOfDigits.get(sum) + i);
            sumOfDigits.put(sum, Math.max(sumOfDigits.getOrDefault(sum, 0), i));
        }
        return ans;
    }
    private int findSumOfDigits(int i){
        int sum = 0;
        while(i>0){
            sum += i%10;
            i/=10;
        }
        return sum;
    }
}