leetcode.52. N-Queens II
2016-05-23 21:26
411 查看
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
class Solution {
public:
int count = 0;
int totalNQueens(int n) {
vector<int> vi(n);
solveNQueens(vi, n, 0);
return count;
}
void solveNQueens(vector<int> &vi, int n, int c)
{
if(c == n)
{
count++;
return;
}
for(vi[c] = 0; vi[c] < n; ++ vi[c])
if(safe(vi, n, c))
solveNQueens(vi, n, c + 1);
}
bool safe(vector<int> &vi, int n, int c)
{
for(int i = 0; i < c; ++ i)
if(vi[i] == vi[c] || abs(vi[c] - vi[i]) == abs(c - i))
return false;
return true;
}
};
Now, instead outputting board configurations, return the total number of distinct solutions.
class Solution {
public:
int count = 0;
int totalNQueens(int n) {
vector<int> vi(n);
solveNQueens(vi, n, 0);
return count;
}
void solveNQueens(vector<int> &vi, int n, int c)
{
if(c == n)
{
count++;
return;
}
for(vi[c] = 0; vi[c] < n; ++ vi[c])
if(safe(vi, n, c))
solveNQueens(vi, n, c + 1);
}
bool safe(vector<int> &vi, int n, int c)
{
for(int i = 0; i < c; ++ i)
if(vi[i] == vi[c] || abs(vi[c] - vi[i]) == abs(c - i))
return false;
return true;
}
};
相关文章推荐
- 如何跨UI实现功能
- java字符串处理--String,StringBuffer,StringBuilder类
- phalcon builder 用法
- leetcode.51. N-Queens
- UIImage的 stretchableImageWithLeftCapWidth 方法的使用
- 【创建型】Builder模式
- Android UI组件和UI框架
- Bubble sort, Insertion sort, merge sort, quick sort, heap sort
- alpha、hidden、opaque的区别
- Android Studio中Module的build.gradle详解
- Range Sum Query系列(Immutable,Mutable,2D - Immutable)
- StringBuffer 与 StringBuilder
- 95. Unique Binary Search Trees II
- 【Arduino官方教程第零辑】基础部分 1-3 Arduino软件(IDE)
- GitHub的Pull Request
- UI进阶 KVO
- HDU 2604 Queuing
- StringBuilder与StringBuffer比较
- 【Arduino官方教程第零辑】基础部分 1-1 什么是Arduino
- Part part = request.getPart("upfile"); 报错解决方法