1 #include "000庫函式.h"2
34//我們定義p,q為當前環的高度和寬度,當p或者q為1時,5//
表示最後乙個環只有一行或者一列,可以跳出迴圈。6//
此題的難點在於下標的轉換,如何正確的轉換下標是解此題的關鍵,7//
我們可以對照著上面的3x3的例子來完成下標的填寫,**如下:
8class
solution
27return
res;28}
29};
3031
//對於這種螺旋遍歷的方法,重要的是要確定上下左右四條邊的位置,
32//
那麼初始化的時候,上邊up就是0,下邊down就是m - 1,左邊left是0,右邊right是n - 1。
33//
然後我們進行while迴圈,先遍歷上邊,將所有元素加入結果res,然後上邊下移一位,
34//
如果此時上邊大於下邊,說明此時已經遍歷完成了,直接break。同理對於下邊,左邊,右邊,
35//
依次進行相對應的操作,這樣就會使得座標很有規律,並且不易出錯,參見**如下:
3637
class
solution
54return
res;
55}
56};
5758
5960
void
t054() ,, };
65 v =s.spiralorder(m);
66for
(auto a : v)
67 cout << a << "";
68 cout <69 m = };
70 v =s.spiralorder(m);
71for
(auto a : v)
72 cout << a << "";
73 cout <7475 }
力扣 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...
力扣54 螺旋矩陣
原題 給你乙個m行n列的矩陣matrix,請按照 順時針螺旋順序 返回矩陣中的所有元素。個人理解 把自己比作正在行走的 棋子,按照右,下 左,上的順序進行移動。每一次碰到編輯觸發換方向,每一次還方向,走路的行為發生變化,走路的行為就是x,y的座標。設定好邊界和觸發邊界換向的條件和邊界的變化就可以解決...
力扣 059 螺旋矩陣 II
給定乙個正整數 n,生成乙個包含 1 到 n 2n 2 n2所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 這是經典的陣列題,題目看起來簡單,但做起來的時候,很容易因為邊界的問題搞到自己十分混亂。這裡我推薦一下我的做法,首先是按圈來排列數字...