劍指offer 順時針列印矩陣

2022-06-19 21:03:13 字數 723 閱讀 7764

討論:

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。

例如,如果輸入如下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.

python實現:

迄今為止找到的最簡單的做法,用pop()

def

printmatrix(matrix):

res =

while

matrix:

res += matrix.pop(0) #

先將第一行新增進列表中 也可以res.extend(matrix.pop(0))

if matrix and

matrix[0]:

for row in matrix: #

遍歷每一行

每一行最後乙個

if matrix: #

如果還存在矩陣 最後一行從右往左

res += matrix.pop()[::-1] #

最後一行 翻轉

if matrix and matrix[0]: #

如果還存在矩陣 往上新增

for row in matrix[::-1]:

return res

劍指offer 順時針列印矩陣

題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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。分析 第一次看到這個題目的時候,覺得...

劍指offer 順時針列印矩陣

題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣 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.思路 遞迴列印,處理好邊界就ok...

劍指offer 順時針列印矩陣

題目描述 給定乙個矩陣按照順時針順序從外到內的列印這個矩陣 解題思路 設定乙個全域性的方向向量dir其中的順序是向右,向下,向左,向上 每次給行加上乙個方向向量,當出現越界或者已經列印過的時候重新選擇方向 vectorprintmatrix vector matrix int d 0 int row...