📅  最后修改于: 2023-12-03 14:50:47.478000             🧑  作者: Mango
国际空间研究组织(ISRO)CS 2016 是印度国家级考试,旨在选拔优秀的程序员和工程师加入国际空间研究组织。问题 20 是该考试中的一道编程问题,在这个问题中,你需要解决一个与矩阵相关的问题。
给定一个 n x n
的矩阵,你需要编写一个函数 rotateMatrix
实现将该矩阵顺时针旋转 90 度的操作。即,将矩阵的每一行转换为相应的列,并以新的行的顺序来填充。
def rotateMatrix(matrix: List[List[int]]) -> List[List[int]]:
pass
matrix
:一个二维整数数组,表示要旋转的矩阵。矩阵的大小为 n x n
,其中 1 <= n <= 20
,且矩阵中的元素范围为 [-1000, 1000]
。matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
assert rotateMatrix(matrix) == [
[7, 4, 1],
[8, 5, 2],
[9, 6, 3]
]
一种简单的方法是先通过水平翻转矩阵,然后再进行对角线翻转。这样既可以实现顺时针旋转 90 度的效果。具体步骤如下:
from typing import List
def rotateMatrix(matrix: List[List[int]]) -> List[List[int]]:
n = len(matrix)
rotated_matrix = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(n):
rotated_matrix[i][j] = matrix[n-j-1][i]
return rotated_matrix
希望这个介绍对程序员有所帮助!