顺时针打印矩阵(python)

Posted Assange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺时针打印矩阵(python)相关的知识,希望对你有一定的参考价值。

题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.

 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     # matrix类型为二维列表,需要返回列表
 4     def printMatrix(self, matrix):
 5         # write code here
 6         def help(topRow,topCol,botRow,botCol):
 7             
 8             if topRow == botRow:#只有一行:
 9                 while topCol <=botCol:
10                     res.append(matrix[topRow][topCol])
11                     topCol+=1
12             elif topCol == botCol:#只有一行
13                 while topRow<=botRow:
14                     res.append(matrix[topRow][topCol])
15                     topRow+=1
16             else:
17                 curCol=topCol
18                 curRow=topRow
19                 while curCol<botCol:
20                     res.append(matrix[topRow][curCol])
21                     curCol+=1
22                 while curRow<botRow:
23                     res.append(matrix[curRow][botCol])
24                     curRow+=1
25                 while curCol>topCol:
26                     res.append(matrix[botRow][curCol])
27                     curCol-=1
28                 while curRow>topRow:
29                     res.append(matrix[curRow][topCol])
30                     curRow-=1
31         if len(matrix)==1:
32             return matrix[0]
33         res=[]
34         topRow=0
35         topCol=0
36         botRow=len(matrix)-1
37         botCol=len(matrix[0])-1
38         
39         while topRow<=botRow and topCol<=botCol:
40             help(topRow,topCol,botRow,botCol)
41             topRow+=1
42             topCol+=1
43             botRow-=1
44             botCol-=1
45         return res

 

以上是关于顺时针打印矩阵(python)的主要内容,如果未能解决你的问题,请参考以下文章

在Python中理解顺时针螺旋的打印矩阵

剑指offer-顺时针打印矩阵-数组-python

顺时针打印矩阵元素(python实现)

剑指offer python版 顺时针打印矩阵

《剑指offer》---顺时针打印矩阵

剑指offer面试题 29. 顺时针打印矩阵