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

52. N-Queens II

时间:2016-10-17 07:22:39      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

哈哈和51是一毛一样的backtracking,唯一区别就是比起每次找到最后生成一个板子,就是记个数,非常不要脸的发两篇

 

 1     int cnt = 0;
 2     
 3     public int totalNQueens(int n) {
 4         int[] queuePos = new int[n];
 5         queue(queuePos, 0);
 6         return cnt;
 7     }
 8     
 9     private boolean canPlace(int[] queuePos, int row, int col) {
10         for(int i = 0; i < row; i++) {
11             if(queuePos[i] == col) {
12                 return false;
13             }
14             if(Math.abs(i - row) == Math.abs(queuePos[i] - col)) {
15                 return false;
16             }
17         }
18         return true;
19     }
20     
21     private void queue(int[] queuePos, int row) {
22         int n = queuePos.length;
23         if(row == n) {
24             cnt++;
25             return;
26         }
27         for(int i = 0; i < n; i++) {
28             if(canPlace(queuePos, row, i)) {
29                 queuePos[row] = i;
30                 queue(queuePos, row + 1);
31             }
32         }
33     }

 

52. N-Queens II

标签:

原文地址:http://www.cnblogs.com/warmland/p/5968378.html

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