https://leetcode.com/problems/shift-2d-grid/description/ | Easy |
---|
Дана двумерная матрица grid
размером m x n
и целое число k
. Необходимо выполнить операцию сдвига k
раз.
В одной операции сдвига:
• Элемент grid[i][j]
перемещается на позицию grid[i][j + 1]
.
• Элемент grid[i][n - 1]
перемещается на позицию grid[i + 1][0]
.
• Элемент grid[m - 1][n - 1]
перемещается на позицию grid[0][0]
.
Верните матрицу после применения операции сдвига k
раз.
class Solution {
fun shiftGrid(grid: Array<IntArray>, k: Int): List<List<Int>> {
val m = grid.size
val n = grid[0].size
val total = m * n
val result = Array(m) { IntArray(n) }
for (i in 0 until m) {
for (j in 0 until n) {
val index = (i * n + j + k) % total
result[index / n][index % n] = grid[i][j]
}
}
return result.map { it.toList() }
}
}