剑指offer 面试题29. 顺时针打印矩阵 [简单]——四个边界

剑指offer 面试题29. 顺时针打印矩阵 [简单]——四个边界_第1张图片

与LeetCode54是同样的题。

我的解题:

设置上下左右四个边界为,a c d b

当a>c,cb,b res

class Solution {
public:
    vector spiralOrder(vector>& matrix) {
        vector res;
        int a=0,d=0;
        if(matrix.size()==0)    return res;
        int c=matrix.size()-1;
        int b=matrix[0].size()-1;

        while(1){
            for(int i=d;i<=b;i++)   res.push_back(matrix[a][i]);
            a++;
            if(a>c) return res;
            for(int i=a;i<=c;i++)   res.push_back(matrix[i][b]);
            b--;
            if(b=d;i--)   res.push_back(matrix[c][i]);
            c--;
            if(c=a;i--)   res.push_back(matrix[i][d]);
            d++;
            if(d>b)     return res;
        }
    }
};

剑指offer 面试题29. 顺时针打印矩阵 [简单]——四个边界_第2张图片

你可能感兴趣的:(剑指offer,LeetCode)