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;
    }
};
全部评论

相关推荐

吴offer选手:我卡在笔试才是最好笑的,甚至没给我发过笔试链接
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
03-27 17:33
门头沟学院 Java
代码飞升:同学院本,你要注意hr当天有没有回复过,早上投,还要打招呼要推销自己,不要一个劲投
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-21 00:27
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务