Spiral Matrix(Medium)

Spiral Matrix II by Leetcode
java编写
class Solution {
static int x=0;
static int y=0;
static int i=0;
public int[][] generateMatrix(int n) {
int [][]a = new int[n][n];
if(n==1){
a[0][0]=1;
return a;
}
boolean[][] pan = new boolean[n][n];
dfs1(pan, a, x, y);
i=0;
return a;
}

public void dfs1(boolean[][] pan,int[][] matrix,int x,int y) {
	if(x==-1||x==matrix.length||y==-1||y==matrix[0].length) {
		return;
	}
			if(pan[x][y]==false) {
			pan[x][y]=true;
			i++;
			matrix[x][y]=i;
			dfs1(pan,  matrix, x, y+1);
			dfs1(pan,  matrix, x+1, y);	
			dfs1(pan, matrix, x, y-1);
			dfs2(pan,  matrix, x-1, y);
			}else {
				return;
			}
}

public void dfs2(boolean[][] pan,int[][] matrix,int x,int y) {
	if(x==-1||x==matrix.length||y==-1||y==matrix[0].length) {
		return;
	}
			if(pan[x][y]==false) {
			pan[x][y]=true;
			i++;
			matrix[x][y]=i;
			dfs2(pan,  matrix, x-1, y);
			dfs1(pan,  matrix, x, y+1);
			}else {
				return;
			}
}

}
这题跟上次的螺旋矩阵一样,不过换成了每经过的一格为赋值为i=1,然后依次递增。比如n=3;
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值