1.螺旋矩阵:给定一个m*n的矩阵。按照螺旋顺序,返回该矩阵的所有要素。
[[1,2,3],
[4,5,6],
[7,8,9]]
返回:[1,2,3,6,9,8,7,4,5]
思路:从左往右,从上至下,从右至左,从下至上打印即可。
代码:
def spiral_matrix(matrix, m, n): output = [] startX= 0 endX = n - 1 startY = 0 endY = m -1 while True: if startX > endX: break for i in range(startX, endX + 1, 1): output.append(matrix[startY][i]) startY += 1 if startY > endY: break for j in range(startY, endY + 1, 1): output.append(matrix[j][endX]) endX -= 1 if startX > endX: break for i in range(endX, startX -1 , -1): output.append(matrix[endY][i]) endY -= 1 if startY > endY: break for j in range(endY, startY -1 , -1): output.append(matrix[j][startX]) startX += 1 return output matrix = [[1,2,3],[4,5,6],[7,8,9],[10,11,12,13]] for i in range(0,len(matrix)): print(matrix[i]) ans = spiral_matrix(matrix,len(matrix) ,len(matrix[0])) print(ans)