給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。
可以將當前的矩陣看作是多個圈環環巢狀而成的,第一次列印最外面乙個矩形,第二次列印第二層的矩形…依次列印即可。
首先用4個變數記錄當前列印的圈的左上角和右下角座標,然後根據座標約束,先列印上面一行,再列印右邊一列,再列印下邊一行,最後列印左邊一列。
class
solution
; vector<
int> res;
int row1 =
0, col1 =
0, row2 = matrix.
size()
-1, col2 = matrix[0]
.size()
-1;while
(row1 <= row2 && col1 <= col2)
return res;
}//列印每一圈
void
printcircle
(vectorint>>
& matrix, vector<
int>
& res,
int row1,
int col1,
int row2,
int col2)
if(col1 == col2)
int currow = row1, curcol = col1;
//從左到右列印上面一行
while
(curcol < col2)
//從上到下列印右面一列
while
(currow < row2)
//從右到左列印下面一行
while
(curcol > col1)
//從下到上列印左面一列
while
(currow > row1)}}
;
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...
leetcode54 螺旋矩陣
給定乙個包含 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...