LeetCode---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 ]
]
java code:
public class Solution { public int[][] generateMatrix(int n) { // Note: The Solution object is instantiated only once and is reused by each test case. int[][] res = new int[n][n]; if(n == 0) return res; //res = new int[n][n]; int level = n / 2; if(level == 0) { res[0][0] = 1; return res; } int cnt = 1; for(int i = 0; i < level; i++) { for(int j = i; j < n - i; j++) { res[i][j] = cnt++; } for(int j = i; j < n - i; j++) { if(res[j][n-i-1] != 0) continue; res[j][n-i-1] = cnt++; } for(int j = n-1-i; j >= 0; j--) { if(res[n-1-i][j] != 0) continue; res[n-1-i][j] = cnt++; } for(int j = n-1-i; j >= 0; j--) { if(res[j][i] != 0) continue; res[j][i] = cnt++; } } if(n % 2 == 1) { res[n / 2][n / 2] = cnt; } return res; } }
补充:软件开发 , Java ,