輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。
示例 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]
使用乙個變數q,記錄一共跑了多少圈,跑完上下左右四步之後算一圈。走完一圈之後將橫縱座標歸0。之後每往裡一圈取值為matrix[l+q][w+q],特殊情況,每圈的最後一步取值注意從左下往上不取最後乙個值,因為最後乙個值已經在第一步的時候取出了。
大概流程如下圖
;// 從右上往右下
while
(w + q <= width -
1- q && index
w--; l--
;// 從右下往左下
while
(l >=
0&& index
l++; w--
;// 從左下往上
while
(w >
0&& index
q++; l =0;
w =0;
}return arr;
}
leetcode 54 順時針列印矩陣
給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 解法1 public listspiralorder int matrix return list pub...
順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...