题目分析:
这个题是把nxn二维数组顺时针旋转90°,旋转对应的规律如下图,图中是一个3x3的二维数组坐标转换对应的关系,即把原来的j坐标变为i坐标,再用数组长度-1-i坐标
作为j坐标。再变换的时候由于不是对称互换的关系,需要一个临时的字典去储存原来的数值及其位置,对应代码如下:
测试代码:
class Solution(object):
def rotate(self, matrix):
dict, length = {}, len(matrix)
for i in range(length):
for j in range(length):
if (i, j) not in dict:
dict[(j, length - 1 - i)] = matrix[i][j]
matrix[i][j] = matrix[length - 1 - j][i]
else:
dict[(j, length - 1 - i)] = matrix[i][j]
matrix[i][j] = dict[(i, j)]
return matrix
print(Solution().rotate([[1, 2, 3], [4, 5, 6], [7, 8, 9]], )) #提交时请删除该行