输出方形螺旋数组

大耗子 2021年02月16日 17次浏览

与leetcode的54题类似。题目是矩形,这个是方形。
54. 螺旋矩阵

import java.util.Scanner;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Spiral_matrix {
	public static void main(String args[]){
		Scanner in=new Scanner(System.in);
		System.out.println("请输入大小");
		int n=in.nextInt(),row=0,col=-1,k=0,m=0;
		int arr[][]=new int[n][n];
		for (int i = 0, turn = 0; i < n; turn++){ //转向的次数
			for (int j = 0; j < n - i; j++){ //一次转向要赋值的次数
				if(m%4==0)//向右
					col++;
				if(m%4==1)//向下
					row++;
				if(m%4==2)//向左
					col--;
				if(m%4==3)//向上
					row--;
				arr[row][col] = ++k; //赋值
			}
			m++; //抵达边界,转向
			if (turn % 2 == 0) //当l等于偶数时,每次转向的赋值次数少1
				i++;
		}
		for( int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				System.out.printf("%4d ", arr[i][j]);
			}
			System.out.println();
		}
	}
}