LeetCode——顺时针打印矩形

题目地址

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

题目解析

按照顺时针一次遍历,遍历外外层遍历里层。

LeetCode——顺时针打印矩形_第1张图片

代码如下

class Solution 
{
public:
    vector spiralOrder(vector>& matrix) 
    {
        if(matrix.empty()) return {};
        vector 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=y1;i--) ret.push_back(matrix[x2][i]);
            // 打印第一列
            if(y1x1;i--) ret.push_back(matrix[i][y1]);

            x1++;
            y1++;
            x2--;
            y2--;
        }
        return ret;
    }
};

你可能感兴趣的:(算法练习,算法)