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

LeetCode - N-Queens II

2013-08-27 17:13 232 查看
Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.



class Solution {
public:

bool isAvailable(vector<int>& pos,int row,int column){
bool available=true;
for(int i=0;i<row;i++){
if(pos[i]==column||abs(row-i)==abs(column-pos[i])){
return !available;
}
}
return available;
}

void solveNQueens(int& result, vector<int>& pos, int row){
if(row==pos.size()){
result++;
return;
}
for(int j=0;j<pos.size();j++){
if(isAvailable(pos,row,j)){
pos[row]=j;
solveNQueens(result,pos,row+1);
pos[row]=-1;
}
}
}

int totalNQueens(int n) {
if(n<=0){
return 0;
}
int result=0;
vector<int> pos(n,-1);
solveNQueens(result,pos,0);
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: