首页 > 代码库 > 环形矩阵

环形矩阵

 1 /** 2  * 环形矩阵 3  *  4  * @author jinfeng 5  * 6  */ 7 public class CircleMatrix { 8  9     /**10      * 输入一个整数n,返回填充了数据的环形矩阵11      * 12      * @param n13      * @return14      */15     public static int[][] getCircleMatrix(int length){16         int [][] matrix = new int[length][length];17         18         int count = 1;19         20         // 最外层for循环表示整个矩阵循环的次数,k在增加,l再减小21         for(int k = 0, l = length; k < l; ++k, --l){22             // 矩阵的上面的一行,要考虑不同循环中的起始下标23             for(int i = k; i < l; ++i)24                 matrix[k][i] = count++;25             // 矩阵的右边的一列,起始下标从k+1行开始26             for(int i = k + 1; i < l; ++i)27                 matrix[i][l - 1] = count++;28             // 矩阵的下面的一行,起始下标从l-2列开始29             for(int i = l - 2; i >= k; --i)30                 matrix[l - 1][i] = count++;31             // 矩阵的左边的一列,起始下标从l-2行开始32             for(int i = l - 2; i > k; --i)33                 matrix[i][k] = count++;34         }35  36         return matrix;37     }38 39     public static void main(String[] args) {40         int [][] matrix = getCircleMatrix(5);41         for(int i = 0; i < matrix.length; ++i){42             for(int j = 0; j < matrix[0].length; ++j)43                 System.out.print(matrix[i][j] + "\t");44             System.out.println();45         }46     }47 48 }

 

环形矩阵