标签:bre IV strong 个数 ret break div matrix display
本文算法使用python3实现
??输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
??输入矩阵为 \[ \begin{bmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ 13 & 14 & 15 & 16 \\ \end{bmatrix} \]
??输出为1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10
??时间限制:1s;空间限制:32768K
??(1)将矩阵第一行加入result中,同时删除第一行。
??(2)对剩余矩阵进行逆时针旋转90度,继续取其第一行
??(3)直到矩阵被删除为空为止。
class Solution:
def printMatrix(self, matrix):
# 每次将矩阵第一行加入result列表
result = []
while matrix:
result += matrix.pop(0)
if not matrix :
break
matrix = self.turnMatrix(matrix)
return result
def turnMatrix(self, matrix):
# 对矩阵进行逆时针旋转90度操作
rows = len(matrix)
cols = len(matrix[0])
resMatrix = []
for j in range(cols):
temp = []
for i in range(rows):
temp.append(matrix[i][j])
resMatrix.append(temp)
resMatrix.reverse()
return resMatrix
标签:bre IV strong 个数 ret break div matrix display
原文地址:https://www.cnblogs.com/lliuye/p/9107425.html