LeetCode - PermutationsSpiral Matrix II

主要是对下标的操作。

 1 class Solution {
 2 public:
 3     vector<vector<int> > generateMatrix(int n) {
 4         vector<vector<int> > ret(n, vector<int>(n));
 5         
 6         int i = 0, j = n-1;
 7         int num = 1;
 8         
 9         for ( ; i < j; ++i, --j)
10         {
11             // 向右赋值
12             for (int k = i; k <= j; k++)
13             {
14                 ret[i][k] = num++;
15             }
16             // 向下赋值
17             for (int k = i+1; k < j; k++)
18             {
19                 ret[k][j] = num++;
20             }
21             // 向左赋值
22             for (int k = j; k >= i; --k)
23             {
24                 ret[j][k] = num++;
25             }
26             // 向上赋值
27             for (int k = j-1; k > i; --k)
28             {
29                 ret[k][i] = num++;
30             }
31         }
32         
33         // n为奇数时,单独赋值
34         if (i == j)
35             ret[i][j] = num;
36         
37         return ret;
38     }
39 };

 

posted @ 2015-04-01 19:13  bournet  阅读(107)  评论(0编辑  收藏  举报