[LeetCode] 061: N-Queens II
来源:互联网 发布:好看的网络自制剧 编辑:程序博客网 时间:2024/06/06 16:54
[Problem]
[Solution]
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
[Solution]
class Solution {说明:版权所有,转载请注明出处。Coder007的博客
public:
/**
* if the current position is valid
*/
bool check(int pos[], int level){
for(int i = 0; i < level; ++i){
if(i + pos[i] == level + pos[level] || pos[i] - i == pos[level] - level){
return false;
}
}
return true;
}
/**
* get total number method to put N Queens
*/
int totalNQueens(int n, bool used[], int pos[], int level){
int res = 0;
// the last level
if(level == n-1){
// set the Queen in n positions
for(int i = 0; i < n; ++i){
pos[level] = i;
if(!used[i] && check(pos, level)){
res++;
}
}
}
// recursion
else{
for(int i = 0; i < n; ++i){
pos[level] = i;
if(!used[i] && check(pos, level)){
used[i] = true;
int nextRes = totalNQueens(n, used, pos, level+1);
res += nextRes;
used[i] = false;
}
}
}
return res;
}
/**
* total number of methods to put N queens
*/
int totalNQueens(int n) {
// Note: The Solution object is instantiated only once and is reused by each test case.
if(n <= 0)return 0;
// initial
bool used[n];
int pos[n];
memset(used, false, sizeof(used));
return totalNQueens(n, used, pos, 0);
}
};
阅读全文
0 0
- [LeetCode] 061: 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
- LeetCode - 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
- Leetcode: N-Queens II
- LeetCode N-Queens II
- Leetcode N-Queens II
- N-Queens II -- LeetCode
- [LeetCode] 058: Minimum Window Substring
- [LeetCode] 059: Multiply Strings
- 2017沈阳网络赛 1001 HDU 6194 string string string(后缀自动机 出现k次的子串个数)
- 2704:寻找平面上的极大点(4.6算法之贪心)
- [LeetCode] 060: N-Queens
- [LeetCode] 061: N-Queens II
- [LeetCode] 062: Next Permutation
- ConcurrentHashMap实现原理
- [LeetCode] 063: Palindrome Number
- httpclient_get_post
- 【转】简介ajax
- [LeetCode] 064: Palindrome Partition
- [LeetCode] 065: Palindrome Partitioning II
- [LeetCode] 066: Partition List