劍指Offer 29 順時針列印矩陣

2022-06-06 11:39:08 字數 582 閱讀 3721

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

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

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

class solution ;

int l = 0, r = matrix[0].size() - 1, t = 0, b = matrix.size() - 1;

vectorres;

while (true)

return res;}};

本題的重難點為,如何有條理地處理好邊界問題。本解法使用l,r,t,b分別表示左右上下四條邊界的角標,不在最外層while迴圈中做任何跳出判斷,而在內部判斷每條邊界是否越界。可以看到,不論是內層for迴圈的起始位置,存入res陣列的矩陣的角標,還是跳出條件,都非常清晰。

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