首页 > 代码库 > N-Queens II
N-Queens II
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
#include<iostream>#include<vector>#include<cmath>using namespace std;class Solution{public: int res=0; int totalNQueens(int n) { vector<int> state(n,-1); helper(n,0,state); return res; } void helper(int n,int start,vector<int> &state) { if(start==n) { res++; return; } int i; for(i=0; i<n; i++) { if(isValid(state,start,i)) { state[start]=i; helper(n,start+1,state); state[start]=-1; } } } bool isValid(vector<int> &state,int row,int col) { int i; for(i=0; i<row; i++) if(state[i]==col||row-i==abs(state[i]-col)) return false; return true; }};int main(){ Solution s; cout<<s.totalNQueens(4)<<endl;}
N-Queens II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。