LeetCode 54 順時針列印矩陣

2021-10-06 20:41:15 字數 895 閱讀 4085

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

示例 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,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...