leetcode每日一题6月五号

题目

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

class Solution {
public:
    vector spiralOrder(vector>& matrix) {
        if(matrix.size()==0||matrix[0].size()==0) return{};
        int rows = matrix.size(),columns = matrix[0].size();
        vector order;
        int left = 0,right = columns-1,top = 0,bottom = rows - 1;
        while(left<=right&&top<=bottom)
        {
            for(int column = left;column<=right;column++)
            {
                order.push_back(matrix[top][column]);
            }
            for(int row = top+1;row<=bottom;row++)
            {
                order.push_back(matrix[row][right]);
            }
            if(leftleft;column--)
                {
                    order.push_back(matrix[bottom][column]);
                }
                for(int row = bottom;row>top;row--)
                {
                    order.push_back(matrix[row][left]);
                }
            }
            left++;
            right--;
            top++;
            bottom--;
        }
        return order;
    }
};

你可能感兴趣的:(leetcode每日一题6月五号)