题目:
//不可以用代码随想录里螺旋矩阵的思路
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> result;
if(matrix.empty()) return result;
int rl=0,rh=matrix.size()-1; //定义上下边界
int cl=0,ch=matrix[0].size()-1; //定义左右边界
while(1){
for(int i=cl;i<=ch;i++)result.push_back(matrix[rl][i]); //从左到右
if(++rl>rh)break; //上边界先加一,再判断会不会超出下边界
for(int i=rl;i<=rh;i++)result.push_back(matrix[i][ch]); //从上到下
if(--ch<cl)break; //右边界先减一,再判断会不会超出左边界
for(int i=ch;i>=cl;i--)result.push_back(matrix[rh][i]); //从右到左
if(--rh<rl)break; //下边界减一判断会不会超出上边界
for(int i=rh;i>=rl;i--)result.push_back(matrix[i][cl]); //从下到上
if(++cl>ch)break;
}
return result;
}
};
以上代码转自力扣评论区
分类:
算法编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通