题解 | #螺旋矩阵#

螺旋矩阵

https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

#include <vector>
class Solution {
public:

    vector<int> spiralOrder(vector<vector<int> > &matrix) {
        vector<int> res;
        int n=matrix.size();
        if (n==0) {
            return res;
        }
        int left=0;
        int right=matrix[0].size()-1;
        int up=0;
        int down=n-1;
        while (left<=right&&up<=down) {
            //上边界从左向右
            for(int i=left;i<=right;i++){
                res.push_back(matrix[up][i]);
            }
            up++;
            if(up>down)
                break;
            //右边界从上向下
            for(int i=up;i<=down;i++){
                res.push_back(matrix[i][right]);
            }
            right--;
            if(left>right)
                break;
            //下边界从右向左
            for(int i=right;i>=left;i--)
                res.push_back(matrix[down][i]);
            down--;
            if(up>down)
                break;
            //左边界从下向上
            for (int i=down;i>=up;i--)
                res.push_back(matrix[i][left]);
            left++;
            if(left>right)
                break;
            

        }
        return res;
    }
};

全部评论

相关推荐

06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
05-11 20:45
门头沟学院 Java
有担当的灰太狼又在摸...:零帧起手查看图片
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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