20 順時針列印矩陣

2021-10-12 00:09:50 字數 718 閱讀 3799

題目描述:輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數

字,例如,如果輸入如下 4x4 矩陣:

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. 思路:按層模擬:終止行號大於起始行號,終止列號大於起始列號,

**實現:時間複雜度:o(n),空間複雜度:o(n),其中 n 表示矩陣元素個數

public listspiralorder(int matrix) 

int r1 = 0, r2 = matrix.length - 1;

int c1 = 0, c2 = matrix[0].length - 1;

while (r1 <= r2 && c1 <= c2)

// 從上往下

for (int r = r1 + 1; r <= r2; r++)

// 判斷是否會重複列印

if (r1 < r2 && c1 < c2)

// 從下往上

for (int r = r2; r > r1; r--)

} r1++;

r2--;

c1++;

c2--;

} return res;

}

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.列印第一圈的左上角座標是 0,0 第二圈的...

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。這個題目 寫的並不好感覺,好多if看著就煩,就是...

順時針列印矩陣

題目 給定乙個矩陣,從外向內順時針列印矩陣中的每乙個數字。例如 給定矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 輸出應該為 分析 這道題的意思非常直觀,給人的感覺也是so easy,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...