[LeetCode] N-Queens
2014-05-04 17:54
239 查看
Total Accepted: 7379 Total
Submissions: 29099
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.
Given an integer n, return all distinct solutions to the n-queens puzzle.
Each solution contains a distinct board configuration of the n-queens' placement, where
indicate a queen and an empty space respectively.
For example,
There exist two distinct solutions to the 4-queens puzzle:
Submissions: 29099
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.
Given an integer n, return all distinct solutions to the n-queens puzzle.
Each solution contains a distinct board configuration of the n-queens' placement, where
'Q'and
'.'both
indicate a queen and an empty space respectively.
For example,
There exist two distinct solutions to the 4-queens puzzle:
[ [".Q..", // Solution 1 "...Q", "Q...", "..Q."], ["..Q.", // Solution 2 "Q...", "...Q", ".Q.."] ]
public class Solution { public ArrayList<String[]> solveNQueens(int n) { ArrayList<String[]> list = new ArrayList<String[]>(); int[] path = new int ; dfs(list, path, n, 0); return list; } public void dfs(ArrayList<String[]> list, int[] path, int n, int level) { if (level == n) { String[] set = new String ; for (int i = 0; i < n; i++) { StringBuffer str = new StringBuffer(); for (int j = 0; j < n; j++) { if (path[i] == j) str.append("Q"); else str.append("."); } set[i] = str.toString(); } list.add(set); return; } for (int i = 0; i < n; i++) { path[level] = i; if (check(path, level)) dfs(list, path, n, level + 1); } } public boolean check(int[] path, int level) { for (int i = 0; i < level; i++) { if ((path[i] == path[level]) || Math.abs(path[i] - path[level]) == (level - i)) return false; } return true; } }
相关文章推荐
- N queens -- LeetCode
- LeetCode N-Queens
- 51. N-Queens, leetcode
- leetcode 51. N-Queens
- Leetcode---N-Queens
- Leetcode | N-Queens I & II
- [leetcode]N-Queens
- Leetcode: N-Queens
- leetcode第一刷_N-Queens
- leetcode-51. N-Queens
- [leetcode] N-Queens
- LeetCode 51. N-Queens
- 【leetcode】N-Queens
- LeetCode-N-Queens
- leetcode - N-Queens
- leetcode N-Queens
- leetcode-51-N-Queens
- LeetCode N-Queens
- LeetCode | N-Queens
- LeetCode之N-Queens