矩阵不一定是方阵。。

顺时针打印矩阵

http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a

一、矩阵的解法

二、方阵的解法

class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        int len=matrix[0].size();
        int loop=(len/2);
        vector<int> rt;
        int hang,lie;

        //举证不一定是方阵。。
        for(int i=0; i<loop; ++i)
        {

            hang=i;
            for(lie=i; lie<(len-1-i); ++lie)
            {
                rt.push_back( matrix[hang][lie] );
            }

            lie=len-1-i;
            for(hang=i; hang<(len-1-i); ++hang)
            {
                rt.push_back( matrix[hang][lie] );
            }

            hang=len-1-i;
            for(lie=len-1-i; lie>i; --lie)
            {
                rt.push_back( matrix[hang][lie] );
            }

            lie=i;
            for(hang=len-1-i; hang>i; --hang)
            {
                rt.push_back( matrix[hang][lie] );
            }

        }

        if( len&1 )
        {
            rt.push_back( matrix[len/2][len/2] );
        }

        return rt;

    }
};
全部评论

相关推荐

10-31 14:54
已编辑
门头沟学院 算法工程师
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务