您的位置:首页 > 产品设计 > UI/UE

N-Queens II

2015-07-01 02:53 489 查看


N-Queens II



Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.



Please refer to the N-queens.
public class Solution {
public int totalNQueens(int n) {
List<Integer> ret = new ArrayList<Integer>();
ret.add(0);

helper(n,0,new int
,ret);

return ret.get(0);
}

private void helper(int n, int row, int[] columnForRow, List<Integer> ret) {
if (n == row) {
ret.set(0, ret.get(0)+1);
return;
}
for (int i = 0; i < n; i++) {
columnForRow[row] = i;
if (check(row, columnForRow)) {
helper(n, row + 1, columnForRow, ret);
}
}

}

private boolean check(int row, int[] columnForRow) {
for (int i = 0; i < row; i++) {
if (columnForRow[i] == columnForRow[row] || Math.abs(columnForRow[i] - columnForRow[row]) == row - i)
return false;
}

return true;
}
}






 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: