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,10,9,5,6,7]
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/spiral-matrix
思路:順時針模擬,
注意紅色和綠色遍歷需要滿足:left<=right,top<=bottom
黃色和藍色遍歷需要滿足:left<right,top<bottom
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> res;
if(matrix.size()==0)
return res;
int n=matrix.size(),m=matrix[0].size();
for(int i=0;i<=n/2&&i<=m-1-i&&i<=n-1-i;i++)//left<=right,top<=bottom
{
for(int j=i;j<m-i;j++)
{
res.push_back(matrix[i][j]);
// cout<<"a";
}
for(int k=i+1;k<n-i;k++)
{
res.push_back(matrix[k][m-i-1]);
// cout<<"b";
}
if(n-1-i>i&&m-1-i>i)left<right,top<bottom
{
for(int t=m-i-2;t>=i&&(n-1-i)>i;t--)
{
res.push_back(matrix[n-1-i][t]);
// cout<<"c";
}
for(int z=n-i-2;z>i&&i<m-i-1;z--)
{
res.push_back(matrix[z][i]);
// cout<<"d";
}
}
}
return res;
}
};
相關文章
- 力扣-54. 螺旋矩陣力扣矩陣
- 螺旋矩陣矩陣
- leetcode:螺旋矩陣LeetCode矩陣
- LeetCodeHot100 73. 矩陣置零 54. 螺旋矩陣 48. 旋轉影像 240. 搜尋二維矩陣 IILeetCode矩陣
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- 6.5陣列--模擬、偏移量-螺旋矩陣陣列矩陣
- Q14 LeetCode59 螺旋矩陣LeetCode矩陣
- LeetCode 59. 螺旋矩陣 II(python、c++)LeetCode矩陣PythonC++
- C語言實現矩陣螺旋輸出C語言矩陣
- 【程式碼隨想錄】一、陣列:5.螺旋矩陣陣列矩陣
- 富有敗筆的B1050 螺旋矩陣 (25分)矩陣
- 【leetcode】每日精選題詳解之59. 螺旋矩陣 IILeetCode矩陣
- 資料結構與演算法---螺旋矩陣、整數反轉資料結構演算法矩陣
- 977.有序陣列的平方 ,209.長度最小的子陣列 ,59.螺旋矩陣II陣列矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 鄰接矩陣、度矩陣矩陣
- Day2| 977.有序陣列的平方 ,209.長度最小的子陣列 ,59.螺旋矩陣II陣列矩陣
- Day2 |977.有序陣列的平方& 209.長度最小的子陣列&59.螺旋矩陣II陣列矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 程式碼隨想錄演算法訓練營第二天 | 陣列 59.螺旋矩陣演算法陣列矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 矩陣矩陣
- 求任意矩陣的伴隨矩陣矩陣
- 矩陣和陣列矩陣陣列
- 理解矩陣矩陣
- 海浪矩陣矩陣
- 矩陣相乘矩陣
- 稀疏矩陣矩陣
- 矩陣乘法矩陣
- 8.6 矩陣?矩陣
- 找矩陣矩陣
- 矩陣分解矩陣
- 快手矩陣管理平臺,矩陣管理有方法矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 程式碼隨想錄刷題day 2 | 977.有序陣列的平方、 209.長度最小的子陣列、 59.螺旋矩陣II陣列矩陣
- 矩陣:如何使用矩陣操作進行 PageRank 計算?矩陣
- 演算法學習:矩陣快速冪/矩陣加速演算法矩陣
- 程式碼隨想錄演算法訓練營Day2|209.長度最小的子陣列 59.螺旋矩陣演算法陣列矩陣