您的位置:首页 > 产品设计 > UI/UE

LeetCode52. N-Queens II

2017-10-25 22:43 337 查看

LeetCode52. N-Queens II

题目:

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) {
std::vector<int> v(n, 0);
vector<vector<int>> map(n, v);
queen(map, 0);
return count;
}

bool check(vector<vector<int>> map, int col, int row) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < (int)map.size(); j++) {
if (map[i][j]) {
if (abs(i - row) == abs(j - col)) {
return false;
}
if (j == col)
return false;
}
}
}
return true;
}

void queen(vector<vector<int>> map, int row) {
for (size_t i = 0; i < map.size(); i++) {
if (check(map, i, row)) {
//count++;
map[row][i] = 1;
if (row == (int)(map.size() - 1)) {
map[row][i] = 0;
count++;
return;
}
queen(map, row+1);
map[row][i] = 0;
}
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode c++