首页 > 代码库 > N-Queens II
N-Queens II
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
public class Solution { public int totalNQueens(int n) { Integer[] columns=new Integer[n]; return dfs(0,n,columns); } public int dfs(int row,int n,Integer[] columns){ if(row==n){ return 1; } int res=0; for(int col=0;col<n;col++){ if(isValid(columns,row,col)){ columns[row]=col; res+=dfs(row+1,n,columns); } } return res; } public boolean isValid(Integer[] columns,int row1,int col1){ for(int row2=0;row2<row1;row2++){ int col2=columns[row2]; if(col2==col1) return false; int colDistance=Math.abs(col1-col2); int rowDistance=row1-row2; if(colDistance==rowDistance) return false; } return true; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。