-
Notifications
You must be signed in to change notification settings - Fork 3
/
LuckyNumbersInMatrix1380.kt
47 lines (40 loc) · 1.08 KB
/
LuckyNumbersInMatrix1380.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package easy
/*
Given a m * n matrix of distinct numbers, return all lucky numbers in the matrix in any order.
A lucky number is an element of the matrix such that it is the minimum element in its row and maximum in its column.
Example 1:
Input: matrix = [[3,7,8],[9,11,13],[15,16,17]]
Output: [15]
Explanation: 15 is the only lucky number since it is the minimum in its row and the maximum in its column
Example 2:
Input: matrix = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]
Output: [12]
Explanation: 12 is the only lucky number since it is the minimum in its row and the maximum in its column.
Example 3:
Input: matrix = [[7,8],[1,2]]
Output: [7]
*/
fun luckyNumbers (matrix: Array<IntArray>): List<Int> {
val result= arrayListOf<Int>()
matrix.forEach {row->
var minimum=Int.MAX_VALUE
var minimumIndex=-1
row.forEachIndexed{i,v->
if(v < minimum) {
minimum = v
minimumIndex=i
}
}
var max=Int.MIN_VALUE
for(i in matrix.indices)
{
if(matrix[i][minimumIndex] > max)
{
max=matrix[i][minimumIndex]
}
}
if(minimum==max)
result.add(minimum)
}
return result
}