题解 | #顺时针打印矩阵#

顺时针打印矩阵

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

#include <vector>
class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        vector<int> result;
        int index;
        index = min((matrix.size() + 1)/2, (matrix[0].size() + 1)/2);
        int start_x = 0, start_y = 0;
        int end_x = matrix[0].size() - 1,end_y = matrix.size() - 1;
        while (index--){
            for (int i = start_x; i <= end_x; i++)
                result.push_back(matrix[start_y][i]);
            for (int i = start_y + 1; i < end_y; i++)
                result.push_back(matrix[i][end_x]);
                
            if (start_y != end_y){
                for (int i = end_x; i >= start_x; i--)
                    result.push_back(matrix[end_y][i]);
            }
            if (start_x != end_x){
                for (int i = end_y - 1; i > start_y; i--)
                    result.push_back(matrix[i][start_x]);
            }
            start_x++;
            start_y++;
            end_x--;
            end_y--;
        }
        return result;
    }
};

全部评论

相关推荐

09-22 19:21
南京大学 Java
牛客96763241...:刚刚想说才投十几个,养生呢,结果一看是南大本硕✌️,肯定没有问题的
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 15:11
已编辑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务