LeetCode - N-Queens II
2014-02-13 20:22
218 查看
N-Queens II
2014.2.13 20:01
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
![](http://www.leetcode.com/wp-content/uploads/2012/03/8-queens.png)
Solution:
This problem is a simplification from the N-Queens. This time we only have record the number of solutions.
Time complexity is O(n!). Space complexity is O(n!) as well, which comes from parameters in recursive function calls.
Accepted code:
2014.2.13 20:01
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
![](http://www.leetcode.com/wp-content/uploads/2012/03/8-queens.png)
Solution:
This problem is a simplification from the N-Queens. This time we only have record the number of solutions.
Time complexity is O(n!). Space complexity is O(n!) as well, which comes from parameters in recursive function calls.
Accepted code:
// 3CE, 1AC, why so hasty? class Solution { public: int totalNQueens(int n) { a = nullptr; if (n <= 0) { return 0; } res_count = 0; a = new int ; solveNQueensRecursive(0, a, n); delete[] a; return res_count; } private: int *a; int res_count; void solveNQueensRecursive(int idx, int a[], const int &n) { if (idx == n) { // one solution is found ++res_count; return; } int i, j; // check if the current layout is valid. for (i = 0; i < n; ++i) { a[idx] = i; for (j = 0; j < idx; ++j) { if (a[j] == a[idx] || myabs(idx - j) == myabs(a[idx] - a[j])) { break; } } if (j == idx) { // valid layout. solveNQueensRecursive(idx + 1, a, n); } } } int myabs(const int x) { return (x >= 0 ? x : -x); } };
相关文章推荐
- [LeetCode]N-Queens II
- LeetCode | 52. N-Queens II 经典算法n后问题回溯法
- LeetCode_N-Queens II
- Leetcode--N-Queens II
- LeetCode-52. N-Queens II (JAVA)(N皇后解集个数)
- leetcode N-Queens & N-Queens II
- LeetCode 51 - N-Queens II
- Leetcode:N-Queens II
- LeetCode – Refresh – N-Queens II
- Leetcode: N-Queens II
- LeetCode N-Queens II
- [Leetcode]N-Queens II
- [LeetCode] N-Queens II
- [Leetcode 92] 52 N-Queens II
- [LeetCode] N-Queens II
- [leetcode]N-Queens II
- LeetCode-N-Queens II
- 【Leetcode】N-Queens II
- Leetcode: N-Queens II
- 【leetcode】N-Queens II