輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。
示例 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 解題過...