一、题目:
二、思路和代码:
使用上下左右四个变量将这个矩阵放到一个vector容器中。
代码面前,了无秘密:
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
//如果矩阵为空,返回空
if (matrix.size() == 0 || matrix[0].size() == 0) {
return {};
}
vector<int> ans;
//l:左
//r:右
//u:上
//d:下
int l = 0, r = matrix[0].size() - 1, u = 0, d = matrix.size() - 1,i = 0, j = 0;
while(l <= r && u <= d)//装到ANS中
{
for(int i = l; i <= r; i++)
ans.push_back(matrix[u][i]);
for(int i = u + 1; i <= d; i++)
ans.push_back(matrix[i][r]);
for(int i = r - 1; i >= l && u < d; i--)
ans.push_back(matrix[d][i]);
for(int i = d - 1; i > u && l < r; i--)
ans.push_back(matrix[i][l]);
l++, r--, u++, d--;
}
return ans;
}
};
怕什么真理无穷,进一步有进一步的欢喜!