1. 对应力扣题目连接
-
题目简述:
- 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
- 如图:
2. 实现案例代码
public class SpiralMatrix {
public static void main(String[] args) {
int n = 6;
int[][] result = generateMatrix(n);
for (int[] row : result) {
for (int num : row) {
System.out.print(num + " ");
}
System.out.println();
}
}
public static int[][] generateMatrix(int n) {
// 新建一个n*n的矩阵
int[][] matrix = new int[n][n];
// 设置边界在
int top = 0, bottom = n - 1, left = 0, right = n - 1;
// 设置一个计数器
int num = 1;
// 开始循环遍历
while (num <= n * n) {
// 从左到右进行填充
for (int i = left; i <= right; i++) {
matrix[top][i] = num++;
}
top++;
// 从上到下进行填充
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num++;
}
right--;
// 从右到左进行填充
for (int i = right; i >= left; i--) {
matrix[bottom][i] = num++;
}
bottom--;
// 从下到上进行填充
for (int i = bottom; i >= top; i--) {
matrix[i][left] = num++;
}
left++;
}
return matrix;
}
}