59. 螺旋矩阵 II
1 class Solution 2 { 3 vector<vector<int>> ans; 4 int a; 5 public: 6 vector<vector<int>> generateMatrix(int n) 7 { 8 a = 1; 9 ans = vector<vector<int>> (n,vector<int>(n,0)); 10 int x1 = 0,y1 = 0,x2 = n - 1,y2 = n - 1; 11 while(x1 <= x2 && y1 <= y2) Matrix(x1++,y1++,x2--,y2--); 12 return ans; 13 } 14 void Matrix(int x1,int y1,int x2,int y2) 15 { 16 if(x1 == x2 && y1 == y2) ans[x1][y1] = a; 17 else 18 { 19 for(int j = y1;j < y2;j ++) ans[x1][j] = a++; 20 for(int i = x1;i < x2;i ++) ans[i][y2] = a++; 21 for(int j = y2;j > y1;j --) ans[x2][j] = a++; 22 for(int i = x2;i > x1;i --) ans[i][y1] = a++; 23 } 24 } 25 };
Mamba never out

浙公网安备 33010602011771号