螺旋矩阵
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 4
输出:
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
int up = 0, down = n-1, left = 0, right = n-1; //上、下、左、右边界
int count = 1; //计数
int[][] res = new int[n][n];
while(true){
for(int i = left; i <= right; i++){
res[up][i] = count++;
}
if(++up > down) break;
for(int i = up; i <= down; i++){
res[i][right] = count++;
}
if(--right < left) break;
for(int i = right; i >= left; i--){
res[down][i] = count++;
}
if(--down < up) break;
for(int i = down; i >= up; i--){
res[i][left] = count++;
}
if(++left > right) break;
}