题解 | #螺旋矩阵#

螺旋矩阵

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

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int> > &matrix) {
        vector<int> result;
        int ranks=matrix.size();
        if (ranks == 0)
            return {};
        int columns=matrix[0].size();
        int left=0,right=columns-1,up=0,down=ranks-1;
        int count=0;
        while (true)
        {
            for(int i=left;i<=right;i++)
            {
                result.push_back(matrix[up][i]);
                count++;
                if (count == ranks*columns)
                    return result;
            }
            up++;

            for (int i = up; i <=down ; i++)
            {
                result.push_back(matrix[i][right]);
                count++;
                if (count == ranks*columns)
                    return result;
            }
            right--;

            for (int i = right; i >= left ; i--)
            {
                result.push_back(matrix[down][i]);
                count++;
                if (count == ranks*columns)
                    return result;
            }
            down--;

            for (int i = down; i >= up ; i--)
            {
                result.push_back(matrix[i][left]);
                count++;
                if (count == ranks*columns)
                    return result;
            }
            left++;
        }
    }
};
全部评论

相关推荐

挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务