【螺旋矩陣2】

59. 螺旋矩陣 II

給定一個正整數 n,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。

示例:

輸入: 3
輸出:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/spiral-matrix-ii
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> matrix(n);
        for (int i = 0; i < matrix.size(); i++)
            matrix[i].resize(n);

        int R = n-1;
        int L = 0;
        int U = 0;
        int D = n-1;
        
        int num=1;
        
        while(true){
            
            for(int i=L;i<=R;i++)matrix[U][i]=num++;
                if(++U>D) break;
            
            for(int i=U;i<=D;i++)matrix[i][R]=num++;
                if(--R<L) break;
            
            for(int i=R;i>=L;i--)matrix[D][i]=num++;
                if(--D<U) break;
    
            for(int i=D;i>=U;i--)matrix[i][L]=num++;
                if(++L>R)break;
            
        }
        
        return matrix;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章