首页 > 代码库 > 52. N-Queens II
52. N-Queens II
哈哈和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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。