首页 > 代码库 > Leetcode-N-Queens II

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 }

 

Leetcode-N-Queens II