题解 | #N皇后问题#

N皇后问题

https://www.nowcoder.com/practice/c76408782512486d91eea181107293b6

import java.util.*;


public class Solution {
	private static int count = 0;
	public void checked(int n,int max,int[] map){
		if(n == max){
			count++;
			return;
		} 
		for (int i = 0; i < max; i++) {
			map[n] = i;
			if(judge(n,map)) checked(n+1,max,map);
		}
	}
	public boolean judge(int n,int[] map){
		for (int i = 0; i < n; i++) {
			if(map[n] == map[i] || Math.abs(map[n] - map[i]) == Math.abs(n - i))
				return false;
		}
		return true;
	}
	public int Nqueen (int n) {
		int[] map = new int[n];
		checked(0,n,map);
		return count;
	}

}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务