leetCode练习(59)

题目:Spiral Matrix II

难度:medium

问题描述:

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,
Given n = 3,

You should return the following matrix:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]

解题思路:

向剥洋葱一样,一层一层填写,一共需要填写(n+1)/2层。注意每层的顶点位置即可~我觉得比54题还要简单些,方矩阵更容易操作一些~如果是长形的可能还要麻烦。

具体代码如下:showboard()函数为辅助视图函数,可省略.

public class m_59_SpiralMatrixll {
	int ji=1;
	public int[][] generateMatrix(int n) {
        int[][] res=new int[n][n];
        for(int i=0;i<(n+1)/2;i++){
        	tianchong(res,i,ji);
        	System.out.println("-------------");
        	showboard(res);
        }
        return res;
    }
	public void tianchong(int[][]board,int cen,int insert){
		//输入 board 棋盘 、cen填充第cen层、填充第一个数是insert
		int len=board.length;
		int temp=len-2*cen-1;
		if(len%2!=1||cen!=(len-1)/2){	//除了else的情况外的所有情况
			for(int i=0;i


你可能感兴趣的:(leetCode)