輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。
示例 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]
限制:0 <= matrix.length <= 100
0 <= matrix[i].length <= 100
**思路一:**確定上下左右四個邊界,遍歷方向為從左到右、從上到下、從右到左、從下到上,從左到右移動完後上邊界下移(如果上邊界移到了下邊界之下,說明遍歷完了),從上到下移動完後右邊界左移(如果右邊界移動到左邊界之左,說明遍歷完了),剩下兩個方向同理。
class
solution
int[
] res =
newint
[matrix.length * matrix[0]
.length]
;int l =
0, r = matrix[0]
.length -
1, t =
0, b = matrix.length -
1, index =0;
while
(true
)return res;
}}
class
solution
int row = matrix.length;
int col = matrix[0]
.length;
//false代表沒走過
boolean
map =
newboolean
[row]
[col]
;int
dir =
newint
,,,}
;int
res =
newint
[row * col]
; res[0]
= matrix[0]
[0];
map[0]
[0]=
true
;int x =0;
int y =0;
int idx =1;
while
(true)if
(i < dir.length -1)
}if(!flag)
}return res;
}}
面試題29 順時針列印矩陣
輸入乙個矩陣,從外到裡以順時針順序依次列印 思路 將其看作一圈一圈列印 開始 start,start 座標,0,0 1,1 2,2 終止列印一圈的條件 cols startx2,rows starty2 如何列印一圈?從左到右 總需要 從上到下 起始行號 終止行號 從右到左 圈內至少兩行兩列 從下到...
面試題29 順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。這裡沒有涉及複雜的資料結構或者演算法,但是需要寫多個迴圈,需要判斷多個邊界條件。需要注意的是,最後一圈可能退化成只有一行 只有一列,甚至只有乙個數字。分析一圈 第一步總是需要的,因為至少有一步。如果只有一行,就不需要第二步了。需要第二步的...
面試題29 順時針列印矩陣
題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。示例 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...