生成螺旋矩陣(方陣、矩陣)
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;
}
相關文章
- 螺旋矩陣矩陣
- leetcode:螺旋矩陣LeetCode矩陣
- 54. 螺旋矩陣矩陣
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- 力扣-54. 螺旋矩陣力扣矩陣
- 6.5陣列--模擬、偏移量-螺旋矩陣陣列矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 鄰接矩陣、度矩陣矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 【程式碼隨想錄】一、陣列:5.螺旋矩陣陣列矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- Q14 LeetCode59 螺旋矩陣LeetCode矩陣
- 矩陣矩陣
- 矩陣和陣列矩陣陣列
- 求任意矩陣的伴隨矩陣矩陣
- LeetCodeHot100 73. 矩陣置零 54. 螺旋矩陣 48. 旋轉影像 240. 搜尋二維矩陣 IILeetCode矩陣
- LeetCode 59. 螺旋矩陣 II(python、c++)LeetCode矩陣PythonC++
- C語言實現矩陣螺旋輸出C語言矩陣
- 生成一個掃雷矩陣矩陣
- 理解矩陣矩陣
- 海浪矩陣矩陣
- 矩陣相乘矩陣
- 稀疏矩陣矩陣
- 矩陣乘法矩陣
- 8.6 矩陣?矩陣
- 找矩陣矩陣
- 矩陣分解矩陣
- 快手矩陣管理平臺,矩陣管理有方法矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 矩陣:如何使用矩陣操作進行 PageRank 計算?矩陣
- 演算法學習:矩陣快速冪/矩陣加速演算法矩陣
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣
- 高斯消除矩陣矩陣
- 矩陣求導矩陣求導
- 置換矩陣矩陣
- 視訊矩陣矩陣
- 矩陣樹定理矩陣
- 矩陣置0矩陣
- 雅可比矩陣矩陣