LeetCode:19.螺旋矩阵
目录
1.螺旋矩阵
1.螺旋矩阵
这道题可以通过用4个变量up,down,left,right来控制边界进行遍历,up表示矩阵的最上一行,down表示最下面一行,left表示最左边一列,right表示最右边一列,所以就可以得到以下的图
我们就可以从上面开始遍历,从left移动到right,到right之后++up移动到下一层,如果大于down的话就break,其他的同理
class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> ret;int up = 0, down = matrix.size() - 1;int left = 0, right = matrix[0].size() - 1;while(true){for(int i = left; i <= right; i++)ret.push_back(matrix[up][i]);if(++up > down) break;for(int i = up; i <= down; i++)ret.push_back(matrix[i][right]);if(--right < left) break;for(int i = right; i >= left; i--)ret.push_back(matrix[down][i]);if(--down < up) break;for(int i = down; i >= up; i--)ret.push_back(matrix[i][left]);if(++left > right) break;}return ret;}
};