文章目录
1. LeetCode 54 螺旋矩阵
- 🍎 解题思路:
⚽① 因为每次遍历的时候的方向是固定的一个循环遍历,都是满足
往右
,往下
,往左
,往上
,定义四个变量,u、r、d、l 来控制遍历的边界。
- 🍎 解题代码:
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int u = 0;
int r = matrix[0].size() - 1;
int d = matrix.size() - 1;
int l = 0;
vector<int> res;
while (true)
{
// 往右边
for (int i = l; i <= r; i ++) {
res.push_back(matrix[u][i]);
}
if (++ u > d) {
break;
}
// 往下边
for (int i = u; i <= d; i ++) {
res.push_back(matrix[i][r]);
}
if (-- r < l) {
break;
}
// 往左边
for (int i = r; i >= l; i --) {
res.push_back(matrix[d][i]);
}
if (--d < u) {
break;
}
// 往上边
for (int i = d; i >= u; i --) {
res.push_back(matrix[i][l]);
}
if (++ l > r) {
break;
}
}
return res;
}
};