2022-03-27 18:27:43 +08:00
< p > You are given an < code > m x n< / code > integer matrix < code > grid< / code > , where < code > m< / code > and < code > n< / code > are both < strong > even< / strong > integers, and an integer < code > k< / code > .< / p >
< p > The matrix is composed of several layers, which is shown in the below image, where each color is its own layer:< / p >
< p > < img alt = "" src = "https://assets.leetcode.com/uploads/2021/06/10/ringofgrid.png" style = "width: 231px; height: 258px;" / > < / p >
< p > A cyclic rotation of the matrix is done by cyclically rotating < strong > each layer< / strong > in the matrix. To cyclically rotate a layer once, each element in the layer will take the place of the adjacent element in the < strong > counter-clockwise< / strong > direction. An example rotation is shown below:< / p >
< img alt = "" src = "https://assets.leetcode.com/uploads/2021/06/22/explanation_grid.jpg" style = "width: 500px; height: 268px;" / >
< p > Return < em > the matrix after applying < / em > < code > k< / code > < em > cyclic rotations to it< / em > .< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< img alt = "" src = "https://assets.leetcode.com/uploads/2021/06/19/rod2.png" style = "width: 421px; height: 191px;" / >
< pre >
< strong > Input:< / strong > grid = [[40,10],[30,20]], k = 1
< strong > Output:< / strong > [[10,20],[40,30]]
< strong > Explanation:< / strong > The figures above represent the grid at every state.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< strong > < img alt = "" src = "https://assets.leetcode.com/uploads/2021/06/10/ringofgrid5.png" style = "width: 231px; height: 262px;" / > < / strong > < strong > < img alt = "" src = "https://assets.leetcode.com/uploads/2021/06/10/ringofgrid6.png" style = "width: 231px; height: 262px;" / > < / strong > < strong > < img alt = "" src = "https://assets.leetcode.com/uploads/2021/06/10/ringofgrid7.png" style = "width: 231px; height: 262px;" / > < / strong >
< pre >
< strong > Input:< / strong > grid = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]], k = 2
< strong > Output:< / strong > [[3,4,8,12],[2,11,10,16],[1,7,6,15],[5,9,13,14]]
< strong > Explanation:< / strong > The figures above represent the grid at every state.
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > m == grid.length< / code > < / li >
< li > < code > n == grid[i].length< / code > < / li >
< li > < code > 2 < = m, n < = 50< / code > < / li >
< li > Both < code > m< / code > and < code > n< / code > are < strong > even< / strong > integers.< / li >
< li > < code > 1 < = grid[i][j] < =< sup > < / sup > 5000< / code > < / li >
< li > < code > 1 < = k < = 10< sup > 9< / sup > < / code > < / li >
< / ul >