KtLeetcode/src/Test48.kt

47 lines
1.4 KiB
Kotlin
Raw Normal View History

2024-08-26 08:35:43 +02:00
class Test48 {
class Solution {
fun rotate(matrix: Array<IntArray>): Unit {
for (i in 0..(matrix.size-1)/2){
matrix[i] = matrix[matrix.size-1-i]
.also { matrix[matrix.size-1-i] = matrix[i] }
}
for (i in 1..<matrix.size){
for (j in 0..i){
matrix[i][j] = matrix[j][i]
.also { matrix[j][i] = matrix[i][j] }
}
}
}
}
fun test() {
val solution = Solution()
// 测试用例 1
val matrix1 = arrayOf(
intArrayOf(1, 2, 3),
intArrayOf(4, 5, 6),
intArrayOf(7, 8, 9)
)
solution.rotate(matrix1)
printMatrix(matrix1) // 预期输出: [[7,4,1],[8,5,2],[9,6,3]]
// 测试用例 2
val matrix2 = arrayOf(
intArrayOf(5, 1, 9, 11),
intArrayOf(2, 4, 8, 10),
intArrayOf(13, 3, 6, 7),
intArrayOf(15, 14, 12, 16)
)
solution.rotate(matrix2)
printMatrix(matrix2) // 预期输出: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
}
// 辅助函数:打印二维矩阵
fun printMatrix(matrix: Array<IntArray>) {
matrix.forEach { row ->
println(row.joinToString(prefix = "[", postfix = "]", separator = ","))
}
}
}