题目地址
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目解析
按照顺时针一次遍历,遍历外外层遍历里层。
代码如下
class Solution
{
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {if(matrix.empty()) return {};vector<int> ret;int x1=0,x2=matrix.size()-1;int y1=0,y2=matrix[0].size()-1;while( x1 <= x2 && y1 <= y2){// 打印第一行for(int i=y1;i<=y2;i++) ret.push_back(matrix[x1][i]);// 打印最后一列for(int i=x1+1;i<=x2;i++) ret.push_back(matrix[i][y2]);// 打印最后一行if(x1<x2)for(int i=y2-1;i>=y1;i--) ret.push_back(matrix[x2][i]);// 打印第一列if(y1<y2)for(int i=x2-1;i>x1;i--) ret.push_back(matrix[i][y1]);x1++;y1++;x2--;y2--;}return ret;}
};