【LeetCode】N-Queens II && 【九度】题目1254:N皇后问题
来源:互联网 发布:php ext 编辑:程序博客网 时间:2024/05/16 03:52
N-Queens II
Total Accepted: 2737 Total Submissions: 10408 My Submissions
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
这个其实比N-Queens要简单,只需要输出个数就可以。
BFS超时,DFS很快就过了,和九度题目1254:N皇后问题一样,也是DFS。
Java DFS AC
public class Solution { public int totalNQueens(int n) { if(n <= 0){ return 0; } int []queen = new int[n + 1]; count = 0; for(int i = 1; i < n+1 ; i++){ queen[1] = i; dfs(queen,2,n); } return count; } public int count ; public void dfs(int queen[], int line, int n) { if(line == n+1){ count ++; return; } for(int i = 1; i < n+1; i++){ if(valid(line, i, queen)){ queen[line] = i; dfs(queen ,line+1, n); queen[line] = 0; } } } public boolean valid(int row, int col, int []queen) { for (int i = 1; i < row; i++) { if (queen[i] != 0 && (queen[i] == col || Math.abs(i - row) == Math.abs(queen[i] - col))) return false; } return true; }}
九度题目1254:N皇后问题
Java DFS AC
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.StreamTokenizer; public class Main{ /* * 1254 */ public static int count; public static void main(String[] args) throws Exception { StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); while (st.nextToken() != StreamTokenizer.TT_EOF) { int n = (int) st.nval; count = 0; solveNQueens(n); System.out.println(count); } } public static void solveNQueens(int n) { if(n <= 0){ return; } int []queen = new int[n + 1]; for(int i = 1; i < n+1 ; i++){ queen[1] = i; dfs(queen,2,n); } } public static void dfs(int queen[], int line, int n) { if(line == n+1){ count++; return; } for(int i = 1; i < n+1; i++){ if(valid(line, i, queen)){ queen[line] = i; dfs(queen,line+1, n); queen[line] = 0; } } } public static boolean valid(int row, int col, int []queen) { for (int i = 1; i < row; i++) { if (queen[i] != 0 && (queen[i] == col || Math.abs(i - row) == Math.abs(queen[i] - col))) return false; } return true; }} /************************************************************** Problem: 1254 User: wangzhenqing Language: Java Result: Accepted Time:2860 ms Memory:17600 kb****************************************************************/
0 0
- 【LeetCode】N-Queens II && 【九度】题目1254:N皇后问题
- [LeetCode] [N皇后问题] N-Queens & N-Queens II
- 【LeetCode】N-Queens && 【九度】题目1140:八皇后
- N-Queens II N皇后问题(有几种放法)@LeetCode
- 【LeetCode】N-Queens II N皇后问题 回溯法
- leetcode N-Queens I & II N皇后问题
- [LeetCode 51&52] N-Queens I & II (N皇后问题)
- 九度 题目1254:N皇后问题
- leetcode 52. N-Queens II & leetcode 51 N-Queens (N皇后问题)
- N-Queens N皇后问题@LeetCode
- leetcode-51 N-Queens N皇后问题
- N 皇后问题 : Leetcode 51. N-Queens
- leetCode 52.N-Queens II (n皇后问题II) 解题思路和方法
- 题目:N皇后问题 II
- LeetCode OJ 之 N-Queens II(N皇后 - 二)
- LeetCode 52. N-Queens II(N皇后)
- leetcode:N-Queens II (n皇后问题2)【面试算法题】
- Leetcode #51&52 N-Queens I&II N皇后问题 1&2 解题报告
- java.lang.ClassNotFoundException:数据库驱动加载失败
- chapter 25 An Overview of the C API
- springMVC3学习(二)--ModelAndView对象
- strcpy和memcpy的区别
- CrtmpServer不支持FFMpeg截图以及个别客户端推流(如XSplit)的解决办法
- 【LeetCode】N-Queens II && 【九度】题目1254:N皇后问题
- Linux pgrep
- ssh命令 安装 Vbox以及创建虚拟机等
- mysql
- Jquery日期控件datepicker的使用
- ucloud发送短信的php sdk
- C++构造函数
- Hive 内建操作符与函数开发——深入浅出学Hive
- mongodb后台操作(查看性能,查看进程,杀死进程等)