在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Given an integer n, generate a square matrix filled with elements from 1 to n2(Square(n)) in spiral order. You should return the following matrix: 1 public static List<List<int>> SparialMatrixII(int n) 2 { 3 List<List<int>> ret = new List<List<int>>(); 4 if (n == 0) 5 return ret; 6 if (n == 1) 7 { 8 ret.Add(new List<int> { 1 }); 9 return ret; 10 } 11 12 for (int i = 1; i <= n; i++) 13 { 14 ret.Add(new List<int>(n)); 15 } 16 17 int num = 1; 18 19 for (int i = 0; i <= n / 2; i++) 20 { 21 for (int col = i; col <= n - 1 - i; col++) 22 ret[i][col] = num++; 23 for (int row = i + 1; row <= n - 1 - i; row++) 24 ret[row][n - 1 - i] = num++; 25 for (int col = n - 1 - i - 1; col >= i; col--) 26 ret[n - 1 - i][col] = num++; 27 for (int row = n - 1 - i - 1; row >= i + 1; row--) 28 ret[row][i] = num++; 29 } 30 31 return ret; 32 } 代码分析: 简单,不过要小心。。。 |
请发表评论