题目描述
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例
解题思想
模拟
循环一圈 后
跳出循环的条件:左边界>右边界 或者 上边界 > 下边界
代码
class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> ans;int n = matrix.size(), m = matrix[0].size(); //n行,m列int up = 0, left = 0, bottom = n - 1, right = m - 1;while (true) {for (int i = left; i <= right; i++) ans.push_back(matrix[up][i]);if (++up > bottom) break;for (int i = up; i <= bottom; i++) ans.push_back(matrix[i][right]);if (--right < left ) break;for (int i = right; i >= left; i--) ans.push_back(matrix[bottom][i]);if (--bottom < up) break;for (int i = bottom; i >= up; i--) ans.push_back(matrix[i][left]);if (++left > right ) break;}return ans;}
};