码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode每日一题6月五号

时间:2020-06-06 01:09:30      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:amp   ++   顺序   ack   class   输入   push   top   order   

题目

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

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        if(matrix.size()==0||matrix[0].size()==0) return{};
        int rows = matrix.size(),columns = matrix[0].size();
        vector<int> 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(left<right&&top<bottom){
                for(int column=right-1;column>left;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月五号

标签:amp   ++   顺序   ack   class   输入   push   top   order   

原文地址:https://www.cnblogs.com/just-we/p/13053037.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!