Spiral Matrix II

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,
Given n = 3,

You should return the following matrix:

[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

代码:
 1     vector<vector<int> > generateMatrix(int n) {
 2         // IMPORTANT: Please reset any member data you declared, as
 3         // the same Solution instance will be reused for each test case.
 4         vector<vector<int>> result(n, vector<int>(n, 0));
 5         if(n == 0)
 6             return result;
 7         int i,j,k=1;
 8         for(i = 0; i < n/2; i++){
 9             for(j = i; j < n-1-i; j++){
10                 result[i][j] = k++;
11             }
12             for(j = i; j < n-1-i; j++){
13                 result[j][n-1-i] = k++;
14             }
15             for(j = n-1-i; j > i; j--){
16                 result[n-1-i][j] = k++;
17             }
18             for(j = n-1-i; j > i; j--){
19                 result[j][i] = k++;
20             }
21         }
22         if(n%2 == 1)
23             result[n/2][n/2] = k;
24         return result;
25     }

 

posted on 2013-11-06 16:50  waruzhi  阅读(111)  评论(0编辑  收藏  举报

导航