1 Star 0 Fork 0

MetaverseMobile/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
剑指_Offer_29_顺时针打印矩阵.cpp 2.04 KB
一键复制 编辑 原始数据 按行查看 历史
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
if (matrix.empty())
return {};
int rStart = 0, rEnd = matrix.size();
int cStart = 0, cEnd = matrix[0].size();
vector<int> ans;
int state = 0;
int r = 0, c = 0;
while (rStart < rEnd && cStart < cEnd) {
switch(state) {
case 0:
for (c = cStart; c < cEnd; c++)
ans.push_back(matrix[r][c]);
rStart++;
c = cEnd - 1;
break;
case 1:
for (r = rStart; r < rEnd; r++)
ans.push_back(matrix[r][c]);
cEnd--;
r = rEnd - 1;
break;
case 2:
for (c = cEnd - 1; c >= cStart; c--)
ans.push_back(matrix[r][c]);
rEnd--;
c = cStart;
break;
case 3:
for (r = rEnd - 1; r >= rStart; r--)
ans.push_back(matrix[r][c]);
cStart++;
r = rStart;
break;
default:
break;
}
state++;
state %= 4;
}
return ans;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/MetaverseMobile/leetcode.git
[email protected]:MetaverseMobile/leetcode.git
MetaverseMobile
leetcode
leetcode
main

搜索帮助