刷题记录第二十三天-螺旋矩阵II

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> result = vector<vector<int>>(n,vector<int>(n));
        int up=0,left=0,right=n-1,down=n-1;
        int cnt=1;
        while(cnt<=n*n){
            if(up<=down){
                for(int i=left;i<=right;i++){
                    result[up][i]=cnt++;
                }
                up++;
            }
            if(left<=right){
                for(int i=up;i<=down;i++){
                    result[i][right]=cnt++;
                }
                right--;
            }
            if(up<=down){
                for(int i=right;i>=left;i--){
                    result[down][i]=cnt++;
                }
                down--;
            }
            if(left<=right){
                for(int i=down;i>=up;i--){
                    result[i][left]=cnt++;
                }
                left++;
            }
        }
        return result;
    }
};

你可能感兴趣的:(每日一题,矩阵,算法)