給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。
示例 1:
輸入:[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]輸出: [1,2,3,6,9,8,7,4,5]
示例 2:
輸入:[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]輸出: [1,2,3,4,8,12,11,10,9,5,6,7]
按層遍歷
class
solution
int y1 =
0, y2 = matrix.length -1;
int x1 =
0,x2 = matrix[0]
.length -1;
while
(y1 <= y2 && x1 <= x2)
//這個是扣邊界 以下三個跟這個類似的if語句都是扣邊界,讓x,y不要出去這個邊界。
if(y1 == y2)
break
; y1 ++
;//列迴圈
for(
int j = y1; j <= y2; j++)if
(x1 == x2)
break
; x2--
;//然後再是行迴圈
for(
int i = x2; i >= x1; i--)if
(y1 == y2)
break
; y2--
;//最後列迴圈
for(
int j = y2; j >= y1; j--)if
(x1 == x2)
break
; x1++;}
return list;
}}
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 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...
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 思路是 方向陣列 邊界調整 如下 class solution void matain int x,int...
leetcode 54螺旋矩陣
題目要求 給定乙個矩陣,按螺旋順序輸出各個元素 例子 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 思路 模擬螺旋線路,進行迴圈 每個大迴圈中巢狀四個小迴圈 分別輸出該次迴圈右下左上順序歷遍的元素 即 最外層迴圈中包括 右向迴圈輸出123 下迴圈輸出69 左迴圈...