在算法与设计中螺旋阵编程java代码实现
以下是螺旋阵的Java代码实现:
public class SpiralMatrix {
public int[][] generateMatrix(int n) {
int[][] matrix = new int[n][n];
int num = 1;
int rowStart = 0;
int rowEnd = n - 1;
int colStart = 0;
int colEnd = n - 1;
while (rowStart <= rowEnd && colStart <= colEnd) {
// Traverse right
for (int i = colStart; i <= colEnd; i++) {
matrix[rowStart][i] = num++;
}
rowStart++;
// Traverse down
for (int i = rowStart; i <= rowEnd; i++) {
matrix[i][colEnd] = num++;
}
colEnd--;
// Traverse left
if (rowStart <= rowEnd) {
for (int i = colEnd; i >= colStart; i--) {
matrix[rowEnd][i] = num++;
}
rowEnd--;
}
// Traverse up
if (colStart <= colEnd) {
for (int i = rowEnd; i >= rowStart; i--) {
matrix[i][colStart] = num++;
}
colStart++;
}
}
return matrix;
}
}
在这个实现中,我们使用了四个变量来跟踪矩阵的边界。在每次循环迭代时,我们根据当前的边界从左到右、从上到下、从右到左、从下到上遍历数组,并将数字存储在矩阵中。最后,我们返回生成的矩阵
原文地址: https://www.cveoy.top/t/topic/hgF8 著作权归作者所有。请勿转载和采集!