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

leetcode 052 —— N-Queens II

2015-07-23 19:14 489 查看
计算不同的排列个数

思路同上

class Solution {
public:
int totalNQueens(int n) {
vector<int> queen(n,-1);
int count = 0;
scan(0, count,n,queen);
return count;
}
bool isLegal(int x, int y, vector<int> &queen){
for (int i = 0; i < x; i++){
if (queen[i] == y || (i - queen[i] == x - y) ||( i + queen[i] == x + y))
return false;
}
return true;
}
void scan(int x, int &count, int &n, vector<int> &queen){
if (x == n){
count++;
return;
}
for (int i = 0; i < n; i++){

if (isLegal(x, i,queen)){
queen[x] = i;
scan(x + 1,count,n,queen);
}
}
}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: