螺旋矩阵II(给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。)

  • Post author:
  • Post category:其他


给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3

输出:

[

[ 1, 2, 3 ],

[ 8, 9, 4 ],

[ 7, 6, 5 ]

]

public class test0319 {
	public static void main(String[] args) {
		Solution S = new Solution();
		int n = 4;
		int[][] a = S.generateMatrix(n);
		for(int i = 0; i < 4;i++) {
			for(int j = 0; j < 4; j++) {
				System.out.print(a[i][j]+ "\t");
			}
			System.out.println();
		}
	}
}


class Solution {
    public int[][] generateMatrix(int n) {
        int[][] a = new int[n][n];
        int count = 1;
        int i = 0;
        while(count <= n*n){
        	//关键就是要把行列下标以及行列长度的关系搞清楚
            for( int j = i; j < n - i; j++){
            	//上边
                a[i][j] = count;
                count ++;
            }
            for( int j = i + 1; j < n - i; j++ ){
            	//右边
                a[j][n - i -1] = count ;
                count ++;
            }
            for(int j = n - 2- i; j >= i;j-- ){
            	//下边
                a[n - i -1][j] =count;
                count++;
            }
            for(int j = n- i - 2; j > i; j--){
            	//左边
                a[j][i] = count;
                count ++;
            }
            i++;
        }
        return a;
    }
}



版权声明:本文为be_gin_ner原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。