54. 螺旋矩阵(C++题解含VS可运行源程序)
1.题解
遍历
按照输出顺序右->下->左->上进行遍历即可
2.力扣C++源码
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
//按照顺序遍历即可
vector<int> ans;
int row = matrix.size();//行数
int col = matrix[0].size();//列数
//初始:向上 向下 向左 向右 边界的下标
int up = 0, down = row - 1, left = 0, right = col - 1;
//结果数组容量等于原矩阵元素总个数的时候,结束循环
while (ans.size() < row * col)
{
int i = up, j = left; // 遍历的起点坐标
while (j <= right && ans.size() < row * col) //向右遍历
{
ans.push_back(matrix[i][j]);
j++;
}
i++;
j--;
up++;
while (i <= down && ans.size() < row * col)