class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
if(matrix.size() == 0) return {};
vector<int> ans;
int b = matrix.size() - 1;
int r = matrix[0].size() -1;
int l = 0, t = 0;
while(true) {
for(int ii = l; ii <= r; ii++) ans.push_back(matrix[t][ii]);
t++;
if(t > b) break;
for(int ii = t; ii <= b; ii++) ans.push_back(matrix[ii][r]);
r--;
if(r < l) break;
for(int ii = r; ii >= l; ii--) ans.push_back(matrix[b][ii]);
b--;
if(b < t) break;
for(int ii = b; ii >= t; ii--) ans.push_back(matrix[ii][l]);
l++;
if(l > r) break;
}
return ans;
}
};
【leetcode C++】【剑指 Offer】 29. 顺时针打印矩阵
最新推荐文章于 2023-05-14 09:31:04 发布