fun searchMatrix(matrix: Array<IntArray>, target: Int): Boolean {
val rows = matrix.size
val cols = if (rows > 0) matrix[0].size else 0
var row = 0
var col = cols - 1
while (row < rows && col >= 0) {
val value = matrix[row][col]
when {
value == target -> {
println("Found: i = $row j = $col")
return true
}
value > target -> col--
else -> row++
}
}
println("Not found")
return false
}
fun main() {
val matrix = arrayOf(
intArrayOf(2, 3, 5, 7, 8),
intArrayOf(10, 13, 17, 18, 19),
intArrayOf(25, 26, 30, 37, 38),
intArrayOf(43, 46, 50, 51, 99)
)
searchMatrix(matrix, 37)
}
/*
run:
The matrix is a square matrix.
*/