劍指offer 順時針列印矩陣

2021-07-10 11:16:36 字數 791 閱讀 3986

題目描述:

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

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.

思路:遞迴列印,處理好邊界就ok了

#include 

#include

using namespace std;

int n, m;

int deep;

int matrix[1002][1002];

void print(int d)

for(int i = d; i <= m-d+1; i++)

printf("%d ", matrix[d][i]);

for(int i = d+1; i <= n-d; i++)

printf("%d ", matrix[i][m-d+1]);

for(int i = m-d+1; n-d+1 != d && i >= d; i--)

printf("%d ", matrix[n-d+1][i]);

for(int i = n-d; d != m-d+1 && i >= d+1; i--)

printf("%d ", matrix[i][d]);

print(d+1);

}int main()

return

0;}

劍指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。分析 第一次看到這個題目的時候,覺得...

劍指offer 順時針列印矩陣

題目描述 給定乙個矩陣按照順時針順序從外到內的列印這個矩陣 解題思路 設定乙個全域性的方向向量dir其中的順序是向右,向下,向左,向上 每次給行加上乙個方向向量,當出現越界或者已經列印過的時候重新選擇方向 vectorprintmatrix vector matrix int d 0 int row...

劍指offer 順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 我們可以借助圖形來幫助思考,如下圖 我們可以將列印分為一圈一圈的,對於左圖,6x6的矩陣,最後一圈有4個數字,左上角為 2,2 6 2x2 對於右圖,5x5的矩陣,最後一圈只有乙個數字,左上角也為 2,2 5 2x2 因此我們可將c...