题解 | #螺旋矩阵#

螺旋矩阵

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

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int> >& matrix) {
        vector<int> ans;
        if(matrix.size() == 0)
            return ans;
        int startrow = 0, row = matrix.size(), col = matrix[0].size();
        int num = row * col;  //计算数字总数
        int startcol = 0, circle = 0;  //circle记录圈数
        while (num) {
            circle++;
            for (int i = startcol; i < col - circle; ++i) {
                ans.push_back(matrix[startrow][i]);
                num--;
            }
            startcol = col - circle;
            for (int i = startrow; num && i < row - circle; ++i) {
                ans.push_back(matrix[i][startcol]);
                num--;
            }
            startrow = row - circle;
            for (int i = startcol; num && i >= circle - 1; --i) {
                ans.push_back(matrix[startrow][i]);
                num--;
            }
            startrow--;
            startcol = circle - 1;
            for (int i = startrow; num && i >= circle; --i) {
                ans.push_back(matrix[i][startcol]);
                num--;
            }
            startrow = circle;
            startcol = circle;
        }
        return ans;
    }
};
全部评论

相关推荐

02-01 19:48
门头沟学院 Java
神哥了不得:(非引流)直接暑期吧,没时间日常了,老鱼简历把水印去了,或者换个模板,简历字体大小都不太行,建议换2个高质量的项目,面试应该还会再多一些
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务