螺旋矩阵
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]
示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7]
思路:设置好边界条件,要注意细节
class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { int m = matrix.size(); int n = matrix[0].size(); int num =n*m; int i=0,j=0; int left = 0,right = n-1,top = 0,buttom = m-1; int direction = 1; vector<int> res; while(num--){ if(direction == 1){ if(j<right){ res.emplace_back(matrix[i][j]); j++; }else{ res.emplace_back(matrix[i][j]); right--; direction =2; i++; } } else if(direction == 2){ if(i<buttom){ res.emplace_back(matrix[i][j]); i++; }else{ res.emplace_back(matrix[i][j]); buttom--; direction =3; j--; } } else if(direction == 3){ if(j>left){ res.emplace_back(matrix[i][j]); j--; }else{ res.emplace_back(matrix[i][j]); left++; direction =4; i--; } } else{ if(i>top+1){ res.emplace_back(matrix[i][j]); i--; }else{ res.emplace_back(matrix[i][j]); top++; direction = 1; j++; } } } return res; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探