n皇后问题
来源:互联网 发布:mac打开文件夹很慢 编辑:程序博客网 时间:2024/04/30 22:18
import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * Created by fhqplzj on 16-10-10 at 下午9:07. */public class NQueenProblem { public List<List<String>> solveNQueens(int n) { List<List<String>> result = new ArrayList<>(); solveNQueens(n, new int[n], 0, result); return result; } private void solveNQueens(int n, int[] a, int i, List<List<String>> result) { if (i == n) { ArrayList<String> tmp = new ArrayList<>(); for (int j : a) { char[] data = new char[n]; Arrays.fill(data, '.'); data[j] = 'Q'; tmp.add(String.valueOf(data)); } result.add(tmp); return; } for (int j = 0; j < n; j++) { a[i] = j; if (isValid(a, i)) { solveNQueens(n, a, i + 1, result); } } } private boolean isValid(int[] a, int i) { for (int j = 0; j < i; j++) { if (a[j] == a[i] || i - j == Math.abs(a[i] - a[j])) { return false; } } return true; } private void printResult(List<List<String>> results) { int count = 0; for (List<String> result : results) { if (count == 0) { System.out.println(String.format("Case %d:", ++count)); result.forEach(System.out::println); } else { System.out.println(); System.out.println(String.format("Case %d:", ++count)); result.forEach(System.out::println); } } } public static void main(String[] args) { NQueenProblem nQueenProblem = new NQueenProblem(); nQueenProblem.printResult(nQueenProblem.solveNQueens(8)); }}
0 1
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- N 皇后问题
- N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N皇后问题优化
- N皇后问题
- n皇后问题
- N皇后问题
- IOS基础知识记录六(读写文件)
- STM32系列选型指南
- IOS基础知识记录七(iphone手机横屏、竖屏)
- 从头开始创建django项目和链接postgreSQL
- 欢迎使用CSDN-markdown编辑器
- n皇后问题
- 11.11快到了幽默一下
- IOS基础知识记录八(手机相机或者图片库)
- Extjs处理客户复制三位一撇到numberfield里面
- IOS基础知识记录九(调用AddressBook地址博信息)
- TensorFlow Train篇
- VMware tools安装时 客户机操作系统已将 CD-ROM 门锁定,并且可能正在使用CD-ROM
- Android Studio 高级配置
- 【UVALive 7364】Robots(逆向思维+搜索)