【LeetCode刷题】-螺旋矩阵

Task:

【LeetCode刷题】-螺旋矩阵_第1张图片

思路:

设置四个边界,然后走一圈

代码:

class Solution {
public:
    vector spiralOrder(vector>& matrix) {
        vectorre;
        if(matrix.empty() || matrix[0].empty()) return re;
        int l=0, r=matrix[0].size()-1, up=0, low=matrix.size()-1;
        while(l<=r && up<=low){
            for(int j=l; j<=r; ++j)
                re.push_back(matrix[up][j]); 
            for(int i=up+1; i<=low; ++i)
                re.push_back(matrix[i][r]);
            for(int j=r-1; low>up && j>=l; --j)
                re.push_back(matrix[low][j]);
            for(int i=low-1; r>l && i>up; --i)
                re.push_back(matrix[i][l]);
            ++l,  --r, ++up, --low;
        }
        return re;
    }
};

提交结果:

【LeetCode刷题】-螺旋矩阵_第2张图片

你可能感兴趣的:(C/C++学习,leetCode,LeetCode刷题系列)