劍指 Offer 29 順時針列印矩陣

2021-10-13 18:27:31 字數 1260 閱讀 1509

劍指 offer 29. 順時針列印矩陣

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

示例 1:

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

輸出:[1,2,3,6,9,8,7,4,5]

示例 2:

輸入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]

輸出:[1,2,3,4,8,12,11,10,9,5,6,7]

限制:0 <= matrix.length <= 100

0 <= matrix[i].length <= 100

**:

class

solution

return res;

}}

另一種思路

列印外框

判斷左上角的點和右下角的點別錯過去就行

}// int tr 左上角點的行, int tc 左上角點的列, int dr 右下角點的行, int dc 右下角點的列

public

static

void

printedge

(int

m,int tr,

int tc,

int dr,

int dc)

}// 左上角的列和右下角的列在同一列 縱向結構

/*

o |

| o

*/else

if(tc == dc)

}else

while

(curr != dr)

while

(curc != tc)

while

(curr != tr)}}

public

static

void

main

(string[

] args),,

,};spiralorderprint

(matrix);}

}

劍指offer 29 順時針列印矩陣

分析 每次列印一圈,用start來確定起始列印的點,從0開始,每次增加1,中點是最後列印的乙個點,因此迴圈條件是start2 columns start2 rows,如果用start columns 2 start rows 2會在5 2的時候出錯。列印一圈數字有四個方向 從左到右 從上到下 前提是...

劍指 Offer 29 順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。示例 1 輸入 matrix 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 matrix 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11,10,9...

劍指Offer 29 順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。輸入 matrix 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 輸入 matrix 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11,10,9,5,6,7 解題過...