码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】N-Queens II

时间:2015-01-09 20:47:49      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

N-Queens II

Follow up for N-Queens problem.

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

技术分享

 
 1 class Solution {
 2 public:
 3     int totalNQueens(int n) {
 4         vector<int> q(n,-1);
 5         int result=0;
 6         getQueens(0,n,result,q);
 7         return result;
 8     }
 9    
10     void getQueens(int level,int &n,int &result,vector<int> &q)
11     {
12         if(level==n)
13         {
14             result++;
15             return;
16         }
17         bool flag=false;
18         for(int i=0;i<n;i++)
19         {
20             q[level]=i;
21             if(isValid(q,level))
22             {
23                 getQueens(level+1,n,result,q);
24             }
25             q[level]=-1;
26         }
27     }
28    
29    
30     bool isValid(vector<int> &q,int &level)
31     {
32  
33         for(int i=0;i<level;i++)
34         {
35             if(q[i]==q[level]||abs(q[level]-q[i])==abs(level-i)) return false;
36         }
37        
38         return true;
39     }
40  
41 };

 

【leetcode】N-Queens II

标签:

原文地址:http://www.cnblogs.com/reachteam/p/4214001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!