题解 | #向左移动牛群II#
向左移动牛群II
https://www.nowcoder.com/practice/2467ddd80a2942abbaa752f3c874dd79
- 题目考察的知识点
是模拟和数组操作的基本知识,以及对于翻转和循环移位的理解。
- 题目解答方法的文字分析
- 构造一个 n×n 的矩阵
matrix
,并将其中每个元素赋值为从 1 到 n^2 的连续整数。 - 进行 k 次移动操作,每次移动都需要构造一个新的 n×n 的矩阵
newMatrix
。对于matrix
中的每个元素(i, j)
,计算它在新矩阵newMatrix
中的位置(newRow, newCol)
,然后将matrix[i][j]
的值复制到newMatrix[newRow][newCol]
中。 - 将移动后的结果保存到
matrix
中,并重复步骤 2 直到完成 k 次移动操作。 - 返回最终的移动结果
matrix
。
- 本题解析所用的编程语言
Python
- 完整且正确的编程代码
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param n int整型 # @param k int整型 # @return int整型二维数组 # class Solution: def rotateII(self , n: int, k: int) -> List[List[int]]: # 构造初始矩阵 matrix = [[(i*n+j) for j in range(1, n+1)] for i in range(n)] # 进行 k 次移动操作 for move in range(k): new_matrix = [[0] * n for _ in range(n)] for i in range(n): for j in range(n): # 计算新坐标 new_i = (i - 1 + n) % n new_j = (j - 1 + n) % n new_matrix[new_i][new_j] = matrix[i][j] matrix = new_matrix return matrix
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路