59. Spiral Matrix II
題目:
Given a positive integer n
, generate an n x n
matrix
filled with elements from 1
to n2
in spiral order.
Example 1:
Input: n = 3 Output: [[1,2,3],[8,9,4],[7,6,5]]
Example 2:
Input: n = 1 Output: [[1]]
Constraints:
1 <= n <= 20
思路:
題意是按照順時針一層一層列印出一個n*n的矩陣。思路就是分清楚四個邊界,然後每列印一層,就更新相對應層的值。如原本up是0,down是n-1,列印完第一行,up就應該變1;列印完最後一行,down就應該變n-2。最後注意迴圈跳出情況,當up>down時跳出,而不是up>=down,因為偶數時,up在第二層,down在第三層時,down的那層是還沒列印的。
程式碼:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
if(n==0)
return {};
vector<vector<int>> f(n,vector<int>(n));
int cur=1;
int left=0, right=n-1, up=0,down=n-1;
while(1)
{
for(int i=left;i<=right;i++)
f[up][i]=cur++;
up++;
if(up>down)
break;
for(int i=up;i<=down;i++)
f[i][right]=cur++;
right--;
if(left>right)
break;
for(int i=right;i>=left;i--)
f[down][i]=cur++;
down--;
if(up>down)
break;
for(int i=down;i>=up;i--)
f[i][left]=cur++;
left++;
if(left>right)
break;
}
return f;
}
};
相關文章
- Spiral-matrix-ii
- Leetcode 54 Spiral MatrixLeetCode
- [LeetCode] 2326. Spiral Matrix IVLeetCode
- 演算法練習--LeetCode--54. Spiral Matrix 100%演算法LeetCode
- LeetCode 59. 螺旋矩陣 II(python、c++)LeetCode矩陣PythonC++
- 240. Search a 2D Matrix II
- 【leetcode】每日精選題詳解之59. 螺旋矩陣 IILeetCode矩陣
- Spiral animation
- Matrix
- 977.有序陣列的平方 ,209.長度最小的子陣列 ,59.螺旋矩陣II陣列矩陣
- Matrix Operations
- Matrix Computations
- Matrix Distance
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- Day2 |977.有序陣列的平方& 209.長度最小的子陣列&59.螺旋矩陣II陣列矩陣
- Day2| 977.有序陣列的平方 ,209.長度最小的子陣列 ,59.螺旋矩陣II陣列矩陣
- D. Matrix Cascade
- 初探Matrix Android ApkCheckerAndroidAPK
- 6.lambda-matrix
- Set-matrix-zeroes
- OpenGL Matrix Class (C++)C++
- LeetCode 542. 01 MatrixLeetCode
- [LeetCode] 867. Transpose MatrixLeetCode
- 756-Pyramid Transition Matrix
- CF1493F Enchanted Matrix
- Matrix原始碼分析————Trace Canary原始碼
- Matrix原始碼分析————Resource Canary原始碼
- 【矩陣乘法】Matrix Power Series矩陣
- ARM的BUS Matrix的作用
- Leetcode 73. Set Matrix ZeroesLeetCode
- 瞭解Android Matrix轉換Android
- Range Addition II 範圍求和 II
- 程式碼隨想錄演算法訓練營第二天 | 209. 長度最小的子陣列、 59.螺旋矩陣II演算法陣列矩陣
- 程式碼隨想錄刷題day 2 | 977.有序陣列的平方、 209.長度最小的子陣列、 59.螺旋矩陣II陣列矩陣
- 題解:AT_abc375_c [ABC375C] Spiral Rotation
- Hackable: II
- Cellular Matrix 蜂窩矩陣(一)矩陣
- confusion_matrix函式的使用函式