vector<int> spiralOrder(vector<vector<int>>& matrix) {
int l=0;//左边界
int up=0;//上边界
int r=matrix[0].size()-1;//右边界
int down=matrix.size()-1;//下边界
vector<int>ans;//结果数组,顺时针
while(true){
for(int i=l;i<=r;i++) ans.push_back(matrix[up][i]);//先往右走
if(++up>down)break;上边界往下
for(int i=up;i<=down;i++) ans.push_back(matrix[i][r]); 在往下走
if(--r<l) break;右边界往左
for(int i=r;i>=l;i--) ans.push_back(matrix[down][i]);再往左
if(--down<up) break;下边界往上
for(int i=down;i>=up;i--) ans.push_back(matrix[i][l]);再往上
if(++l>r) break;左边界往右
}
return ans;
}
螺旋矩阵 leetcode54.
最新推荐文章于 2024-10-16 19:17:37 发布
本文详细描述了一个名为`spiralOrder`的函数,用于将二维整数矩阵按照顺时针螺旋顺序进行遍历并存储在vector中,通过四个方向移动边界来完成操作。
摘要由CSDN通过智能技术生成