生成螺旋矩陣(方陣、矩陣)
Total Accepted: 56094 Total
Submissions: 250811 Difficulty: Medium
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
For example,
Given the following matrix:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
You should return [1,2,3,6,9,8,7,4,5]
.
Subscribe to see which companies asked this question
方法:
(1)從外環開始,每次生成矩陣的一個環資料
(2)然後更新環的起點和大小(行數和列數)
vector<vector<int>> generateMatrix(int m, int n) {
vector<vector<int>> res(m, vector<int>(n));
int num_row = m, row_start = 0;
int num_col = n, col_start = 0;
int k = 1;
while (num_row > 0 && num_col > 0) {
//上邊
for (int i = 0; i < num_col; ++i)
res[row_start][col_start + i] = k++;
//右邊
for (int i = 1; i < num_row; ++i)
res[row_start + i][col_start + num_col - 1] = k++;
//下邊,因為第一個 for 已經至少遍歷了上邊一行,若 num_row > 1 才可能執行本 for 迴圈
for (int i = num_col - 2; i >= 0 && num_row > 1; --i)
res[row_start + num_row - 1][col_start + i] = k++;
//左邊,因為第二個 for 已經至少遍歷了右邊一列,若 num_col > 1 才可能執行本 for 迴圈
for (int i = num_row - 2; i >= 1 && num_col > 1; --i)
res[row_start + i][col_start] = k++;
//縮小一個單位的外環
num_row -= 2;
num_col -= 2;
++row_start;
++col_start;
}
return res;
}
相關文章
- 螺旋矩陣矩陣
- 54. 螺旋矩陣矩陣
- c# 螺旋矩陣C#矩陣
- leetcode:螺旋矩陣LeetCode矩陣
- 力扣-54. 螺旋矩陣力扣矩陣
- 6.5陣列--模擬、偏移量-螺旋矩陣陣列矩陣
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- 鄰接矩陣、度矩陣矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 【程式碼隨想錄】一、陣列:5.螺旋矩陣陣列矩陣
- 演算法學習之路|螺旋矩陣演算法矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 矩陣矩陣
- 3D圖形:矩陣的行列式,矩陣的逆、正交矩陣、齊次矩陣3D矩陣
- 矩陣和陣列矩陣陣列
- 矩陣中最大的二維矩陣矩陣
- 求任意矩陣的伴隨矩陣矩陣
- C語言實現矩陣螺旋輸出C語言矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 生成一個掃雷矩陣矩陣
- Matlab生成隨機矩陣Matlab隨機矩陣
- 理解矩陣矩陣
- 矩陣相乘矩陣
- 矩陣分解矩陣
- 稀疏矩陣矩陣
- Numpy 矩陣矩陣
- 穿越矩陣矩陣
- 混淆矩陣矩陣
- 魔方矩陣矩陣
- 海浪矩陣矩陣
- 8.6 矩陣?矩陣
- 找矩陣矩陣
- 矩陣乘法矩陣
- 快手矩陣管理平臺,矩陣管理有方法矩陣
- Wannafly模擬賽 矩陣 二維矩陣hash矩陣
- Q14 LeetCode59 螺旋矩陣LeetCode矩陣
- LeetCodeHot100 73. 矩陣置零 54. 螺旋矩陣 48. 旋轉影像 240. 搜尋二維矩陣 IILeetCode矩陣