N皇后的问题
来源:互联网 发布:漫画免费下载软件 编辑:程序博客网 时间:2024/04/30 09:18
N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)
import org.junit.Test;/** * @author Administrator *递归逐行放置n皇后,可以避开条件 “整个第i行的位置都不能放置” *利用一个数组record来保存已经放置的皇后位置,假设数组为record record[i]的值表示第i行皇后的列数,在递归计算到第i行j列时查看record[0...k] k<i *的值若有说明(i,j)不能放置皇后,在看是否有|k-i|==record【k】-j 若有说明(i,j)不能放置 */public class Nqueue {public int num1(int n){if(n<1)return 0;int[] record=new int[n];return process(0,record,n);}public int process(int i,int[] record,int n){if(i==n)return 1;int res=0;for(int j=0;j<n;j++){if(isValid(record,i,j)){record[i]=j;res+=process(i+1,record,n);}}return res;}public boolean isValid(int[] record,int i,int j){for(int k=0;k<i;k++){if(j==record[k]||Math.abs(record[k]-j)==Math.abs(k-i))return false;}return true;}@Testpublic void test(){System.out.println(num1(2));}}
0 0
- N皇后的问题
- 八皇后、N皇后问题的求解。
- N皇后问题的实现
- N皇后问题的解决
- 小小的N皇后问题
- n皇后问题的解法
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- 由八皇后问题到n皇后的推广
- 基于八皇后上的N皇后问题
- 目前最快的N皇后问题算法!!!
- N皇后问题(基本的搜索法)
- C递归的N皇后问题.
- 关于C语言的N皇后问题
- N皇后问题的一种方案
- N皇后问题的求解(C++代码)
- 让人纠结的N皇后问题
- 关于移动设备插卡问题详解。
- poj 2528 Mayor's posters
- Problem F: 蚂蚁的最短行径
- 测试过程中字符串自动补位处理方法
- JAVA 学习开始纪念(虽然学的慢,事情多,但我不会放弃的)
- N皇后的问题
- 手机知识
- MATLAB min mean函数
- 对android上下文和窗口的理解
- 单例模式总结
- Problem G: 黑豆传说
- 笔记六:基于数组的栈的实现
- 69 个经典 Spring 面试题和答案
- 内存管理---页表机制1