题解 | #螺旋矩阵#

螺旋矩阵

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

public:
    vector<int> spiralOrder(vector<vector<int> > &matrix) {
        vector<int> ans;
        int col=matrix.size();
        int row=matrix[0].size();
        if(col==0 || row==0)
            return {};
        //定义上下左右四个边界
        int u=0;
        int d=col-1;
        int l=0;
        int r=row-1;
        while(true)
        {
            //顺序一定是右下左上
            //向右边
            for(int i=l; i<=r; i++)
                ans.push_back(matrix[u][i]);
            //重新定义上边界
            if(++u>d)   break;
            
            //向下
            for(int i=u; i<=d; i++)
                ans.push_back(matrix[i][r]);
            //定义右边界
            if(--r<l)   break;
            
            for(int i=r; i>=l; i--)
                ans.push_back(matrix[d][i]);;
            if(--d<u)   break;

            for(int i=d; i>=u; i--)
                ans.push_back(matrix[i][l]);
            if(++l>r)   break;
        }
        return ans;
    }
};
全部评论

相关推荐

09-09 21:23
门头沟学院 Java
程序员牛肉:小牛肉来也! 主要就是没有实习经历。因为你的投递方向肯定是中小厂。在小厂中,很少会有公司愿意花钱培养你。因此会更加青睐有实习的同学。再加上你的学历比较差一点,所以找不到是正常的。 跟简历项目啥的已经没有大关系了,就是差一份实习。秋招和日常实习一起投递吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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