题目描述:
给你一个正整数 n ,生成一个包含 1 到 n的平方 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形二维整型数组 matrix ,并将其打印出来.
示例:
输入n = 3
那么我们应该生成的二维数组是:
代码:
import java.util.Arrays;
public class Demo04 {
public static void main(String[] args) {
int n1=3;
System.out.println(Arrays.deepToString(find(n1)));
}
public static int[][] find(int n){
int[][] matrix = new int[n][n];
int count=1;
int t=0;
int l=n-1;
int q=n-1;
int w=0;
while(count<=(n*n)){
for (int i = t; i <= l; i++) {
matrix[w][i]=count++;
}
w++;
for(int j=w;j<=q;j++){
matrix[j][l]=count++;
}
l--;
for(int k=l;k>=t;k--){
matrix[q][k]=count++;
}
q--;
for(int m=q;m>=w;m--){
matrix[m][t]=count++;
}
t++;
}
return matrix;
}
}
运行结果:
解题思路:
按照顺时针方向:从左到右,从上到下,从右到左,从下到上