https://leetcode.com/problems/lucky-numbers-in-a-matrix/description/ Easy

Условие

Дана матрица matrix размером m x n, содержащая различные числа. Необходимо найти все "счастливые числа" в матрице. "Счастливое число" определяется как элемент, который является минимальным в своей строке и одновременно максимальным в своём столбце. Верните список всех таких чисел в любом порядке.

Решение

class Solution {
    fun luckyNumbers(matrix: Array<IntArray>): List<Int> {
        val m = matrix.size
        val n = matrix[0].size
        val rowMins = IntArray(m) { Int.MAX_VALUE }
        val colMaxs = IntArray(n) { Int.MIN_VALUE }

        for (i in 0 until m) {
            for (j in 0 until n) {
                rowMins[i] = minOf(rowMins[i], matrix[i][j])
                colMaxs[j] = maxOf(colMaxs[j], matrix[i][j])
            }
        }

        val result = mutableListOf<Int>()
        for (i in 0 until m) {
            for (j in 0 until n) {
                if (matrix[i][j] == rowMins[i] && matrix[i][j] == colMaxs[j]) {
                    result.add(matrix[i][j])
                }
            }
        }

        return result
    }
}