剛開始的時候低估了這個題目,只把3x3的情況做出來了(錯誤**放在文末)
思路:由於不需要儲存訪問過的路徑,因此可以考慮通過更新邊界的方式控制訪問路徑。
首先訪問上邊界所在的行,上邊界訪問結束之後,更新上邊界
隨後訪問由邊界所在的列,右邊界訪問結束之後,更新右邊
其他邊界同理,在更新邊界的過程中一旦出現上下邊界相交,或者左右邊界相交的情況,則跳出迴圈
vectorspiralorder(vector>& matrix)
return res;
}
vectorspiralorder(vector>& matrix)
if (m == 1)
int i = 0, j = 0;
while (flag[i][j] == 0)
if (flag[i][j] == 1) break;
while (flag[i][j] == 0 && i < m - 1)
if (flag[i][j] == 1) break;
while (flag[i][j] == 0 && j > 0)
if (flag[i][j] == 1) break;
while (flag[i][j] ==0 && i > 1)
if (flag[i][j] == 1) break;
res.push_back(matrix[i][j]);
j++;
} return res;
}
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...