劍指offer29 列印順序矩陣

2021-10-07 19:11:04 字數 730 閱讀 6801

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

示例 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]

這道題,是順時針列印矩陣,使用的方法是暴力解法;難度不大,只不過需要注意的是迴圈截止條件,剛開始寫的時候,就因為迴圈停止條件的問題,除錯了很久。

思路:定義四個邊界:上邊界,下邊界,左邊界,右邊界。從第一行開始遍歷,第一行遍歷完之後,需要收縮邊界(即:將上邊界往下移動,減一),然後從下往下遍歷,遍歷到低之後,同樣需要收縮(右邊界);然後從右往左遍歷,遍歷完之後。同樣需要收縮(下邊界)。

class

solution

} miny++

;for

(int i= miny;i<=maxy;i++)}

maxx--

;for

(int i=maxx;i>=minx;i--)}

maxy--

;for

(int i=maxy;i>=miny;i--)}

minx++;}

return ret;

}}

劍指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 解題過...