螺旋矩阵
题目链接:螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
方法:模拟
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> ans;
int m = matrix.size();
int n = matrix[0].size();
int u = 0,d = m-1,l = 0,r = n - 1;
while (ans.size() < m*n) {
for (int i = l;i <= r;i++) {
if (ans.size() >= m * n)
return ans;
ans.push_back(matrix[u][i]);
}
u++;
for (int i = u;i <= d;i++) {
if (ans.size() >= m * n)
return ans;
ans.push_back(matrix[i][r]);
}
r--;
for (int i = r;i >= l;i--) {
if (ans.size() >= m * n)
return ans;
ans.push_back(matrix[d][i]);
}
d--;
for (int i = d;i >= u;i--) {
if (ans.size() >= m * n)
return ans;
ans.push_back(matrix[i][l]);
}
l++;
}
return ans;
}
};