int n=arr.length ;
int max=0;//从1开始赋值
int count=0;// 循环的圈数
while (n>0){
int j=0;//指针作用
for(int i=0;i<(n-1)*4;i++)
{
if (i<n-1) arr[0+count][i+count]=++max;
else if (i<2*n-2) arr[count+j++][arr.length-1-count]=++max;//自加后赋值 max++赋值后自加
else if (i<3*n-3) arr[arr.length-1-count][(j--)+count]=++max;
else if (i<4*n-4) arr[arr.length-1-(j++)-count][0+count]=++max;
}
if(n==1){
arr[arr.length/2][arr.length/2]=max+1 ;
}//注意到 当y值为奇数时,会有循环到n=1的情况,需要补进数组最中间值
count++;
n-=2;//n=n-2外圈变内圈时长度少两个值