剑指offer-顺时针打印矩阵

Posted DeaglePc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-顺时针打印矩阵相关的知识,希望对你有一定的参考价值。

每个人有不同的方法,我用四个变量标记边界

技术分享
class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        vector<int> res;
        int l,r,t,b;
        l = 0, r = matrix[0].size() - 1, t = 0, b = matrix.size() - 1;
        while(r >= l && b >= t){
            for(int i = l; i <= r; ++i){
                res.push_back(matrix[t][i]);
            }
            t++;
            if(t > b) break;
            for(int i = t; i <= b; ++i){
                res.push_back(matrix[i][r]);
            }
            r--;
            if(l > r) break;
            for(int i = r; i >= l; --i){
                res.push_back(matrix[b][i]);
            }
            b--;
            if(t > b) break;
            for(int i = b; i >= t; --i){
                res.push_back(matrix[i][l]);
            }
            l++;
        }
        return res;
    }
};
View Code

 

以上是关于剑指offer-顺时针打印矩阵的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 29. 顺时针打印矩阵 的 详细题解

剑指offer面试题 29. 顺时针打印矩阵

剑指offer面试题 29. 顺时针打印矩阵

剑指offer:顺时针打印矩阵

剑指offer 19.顺时针打印矩阵

Java 剑指offer(29) 顺时针打印矩阵