首页 > 其他 > 详细

【leetcode】N-Queens II

时间:2015-04-18 17:29:52      阅读:220      评论:0      收藏:0      [点我收藏+]

Follow up for N-Queens problem.

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

技术分享

 

问题是求N皇后的解,可以采用回溯法解决。 

 

 1 class Solution {
 2 public:
 3 
 4 bool isSafe(vector<int> &A,int r){
 5     for(int i=0;i<r;i++){
 6         if((A[i]==A[r])||(abs(A[i]-A[r]))==(r-i))
 7             return false;
 8     }
 9     return true;
10 }
11 
12 void queen(int n,int &result,int cur,vector<int> &A){
13     if(cur==n){
14         result++;
15         return ;
16     }else{
17         for(int i=0;i<n;i++){
18             A[cur]=i;
19             if(isSafe(A,cur))
20                 queen(n,result,cur+1,A);
21         }
22     }
23 }
24 
25     int totalNQueens(int n) {
26         int result=0;
27         vector<int> A(n,-1);
28         queen(n,result,0,A);
29         return result;
30     }
31 };

 

【leetcode】N-Queens II

原文:http://www.cnblogs.com/jawiezhu/p/4437027.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!