首页 > 代码库 > [LeetCode] NQueen II
[LeetCode] NQueen II
public class Solution { public List<String[]> solveNQueens(int n) { int [] locations; locations = new int[n]; List<String[]> result = new ArrayList<String[]>(); getNQueens(locations, 0, result); return result; } public void getNQueens(int [] locations, int row, List<String[]> solutions) { if (row == locations.length) { String [] solution = new String[row]; for(int i=0; i<locations.length; i++) { StringBuffer tmpRow = new StringBuffer(); for (int j=0; j<locations.length; j++) { if(j == locations[i]) tmpRow.append("Q"); else tmpRow.append("."); } solution[i] = tmpRow.toString(); } solutions.add(solution); } for (int i=0; i<locations.length; i++) { if (check(locations, row, i)) { locations[row] = i; getNQueens(locations, row+1, solutions); } } } public boolean check(int [] locations, int row, int clom) { for (int i=0; i<row; i++) { if (locations[i] == clom) return false; if (locations[i]+i == row+clom) return false; if (i-locations[i] == row-clom) return false; } return true; }}
[LeetCode] NQueen II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。