LeetCode in Kotlin

2679. Sum in a Matrix

Medium

You are given a 0-indexed 2D integer array nums. Initially, your score is 0. Perform the following operations until the matrix becomes empty:

  1. From each row in the matrix, select the largest number and remove it. In the case of a tie, it does not matter which number is chosen.
  2. Identify the highest number amongst all those removed in step 1. Add that number to your score.

Return the final score.

Example 1:

Input: nums = [[7,2,1],[6,4,2],[6,5,3],[3,2,1]]

Output: 15

Explanation: In the first operation, we remove 7, 6, 6, and 3. We then add 7 to our score. Next, we remove 2, 4, 5, and 2. We add 5 to our score. Lastly, we remove 1, 2, 3, and 1. We add 3 to our score. Thus, our final score is 7 + 5 + 3 = 15.

Example 2:

Input: nums = [[1]]

Output: 1

Explanation: We remove 1 and add it to the answer. We return 1.

Constraints:

Solution

class Solution {
    fun matrixSum(nums: Array<IntArray>): Int {
        var result = 0
        nums.forEach { row ->
            row.sortDescending()
        }
        for (i in 0 until nums[0].size) {
            var max = 0
            for (j in 0 until nums.size) {
                max = maxOf(max, nums[j][i])
            }
            result += max
        }
        return result
    }
}