LeetCode in Kotlin

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:

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:

Solution

class Solution {
    fun maximumSum(nums: IntArray): Int {
        val map: MutableMap<Int, Int> = HashMap()
        var res = -1
        for (num in nums) {
            var s = 0
            for (digit in num.toString().toCharArray()) {
                s += Integer.valueOf(digit.code - '0'.code)
            }
            if (!map.containsKey(s)) {
                map[s] = num
            } else {
                res = Math.max(res, map[s]!! + num)
                map[s] = Math.max(map[s]!!, num)
            }
        }
        return res
    }
}