劍指offer題20 順時針列印矩陣

2021-08-15 11:35:26 字數 798 閱讀 1180

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

當我們遇到乙個複雜的問題,可以用圖形來幫助我們思考。

1.我們可以用乙個迴圈來列印矩陣,每一次列印矩陣中的乙個圈。

2.下一步分析迴圈結束的條件。我們可以分析出,讓迴圈繼續的條件是column > startx * 2並且rows > starty * 2。

void printmatrixclockwisely(int **numbers, int columns, int rows) 

int start = 0;

while (columns < start * 2 && rows < start * 2)

}void printmatrixcircle(int **numbers, int columns, int rows, int start)

// print one column from top to bottom.

if (start < endy)

}// print one row from right to left.

if (start < endx && start < endy)

}// print one row from right to left.

if (start < endx && start < endy)

}// print one column from bottom to top.

if (start < endx && start < endy - 1)

}}

劍指offer 題目20 順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣 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 題目20 順時針列印矩陣

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