C++螺旋矩阵普遍写法

顺时针打印矩阵

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

class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        int m = matrix.size(), n = matrix[0].size(), ceng = m / 2 + m % 2, N = n * m, ret = 0;
        vector<int> v(N);
        for(int i = 0; i < ceng; ++i){
            for(int j = i; j <= n - 1 - i && ret < N; ++j)
                v[ret++] = matrix[i][j];
            for(int j = i + 1; j <= m - 2 - i && ret < N; ++j)
                v[ret++] = matrix[j][n - 1 - i];
            for(int j = n - 1 - i; j >= i && ret < N; --j)
                v[ret++] = matrix[m - 1 - i][j];
            for(int j = m - 2 - i; j >= i + 1 && ret < N; --j)
                v[ret++] = matrix[j][i];
        }
        return v;
    }
};
全部评论

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务