Leetcode-N-Queens II
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
Solution:
The same as N-Queens.
1 public class Solution { 2 public int totalNQueens(int n) { 3 int res = 0; 4 int[] place = new int[n]; 5 Arrays.fill(place,-1); 6 int level = 0; 7 8 while (level!=-1){ 9 if (level>=n){ 10 res++; 11 level--; 12 continue; 13 } 14 15 int val = place[level]; 16 val++; 17 while (val<n){ 18 boolean valid = true; 19 for (int i=0;i<level;i++) 20 if (val==place[i] || val==place[i]+level-i || val==place[i]-(level-i)){ 21 valid = false; 22 break; 23 } 24 if (valid) break; 25 else val++; 26 } 27 28 if (val<n){ 29 place[level]=val; 30 level++; 31 } else { 32 place[level]=-1; 33 level--; 34 } 35 } 36 37 return res; 38 39 } 40 }