以下是螺旋阵的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;
}

}

在这个实现中,我们使用了四个变量来跟踪矩阵的边界。在每次循环迭代时,我们根据当前的边界从左到右、从上到下、从右到左、从下到上遍历数组,并将数字存储在矩阵中。最后,我们返回生成的矩阵

在算法与设计中螺旋阵编程java代码实现

原文地址: https://www.cveoy.top/t/topic/hgF8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录