时间: 2020-11-22|30次围观|0 条评论

 

 1 class Solution {
 2 public:
 3     void generateResults(int & rlt, int n, int index, bool * flag1, bool * flag2, bool* flag3){
 4     for (int i=0; i<n; i++){
 5         int j = index+i;
 6         int k = index-i+n-1;
 7         if (flag1[i] || flag2[j] || flag3[k]){
 8         continue;
 9         }
10         flag1[i]=true;
11         flag2[j]=true;
12         flag3[k]=true;
13         if (index==n-1){
14         rlt++;
15         }
16         else generateResults(rlt,n,index+1,flag1,flag2,flag3);
17         flag1[i]=false;
18         flag2[j]=false;
19         flag3[k]=false;
20     }
21     }
22 
23     int totalNQueens(int n) {
24     // IMPORTANT: Please reset any member data you declared, as
25     // the same Solution instance will be reused for each test case.
26     if (n<=0)
27         return 0;
28     int * cur = new int[n];
29     bool * flag1 = new bool[n];
30     bool * flag2 = new bool[2*n-1];
31     bool * flag3 = new bool[2*n-1];
32     for (int i=0; i<n; i++){
33         flag1[i]=false;
34     }
35     for (int i=0; i<2*n-1; i++){
36         flag2[i]=false;
37         flag3[i]=false;
38     }
39     int rlt = 0;
40     generateResults(rlt,n,0,flag1,flag2,flag3);
41     delete []flag1;
42     delete []flag2;
43     delete []flag3;
44     return rlt;
45     }
46 };

 

 

转载于:https://www.cnblogs.com/zhanghs/p/3438423.html

原文链接:https://blog.csdn.net/weixin_30342827/article/details/96497719

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《leetcode – N-Queens II
   

还没有人抢沙发呢~