https://oj.leetcode.com/problems/n-queens-ii/
N皇后问题,计算解的个数
class Solution { public: int totalNQueens(int n) { if(n<=0) return 0; vector<int> places(n,-1); int ans = 0; placeQueen(0, n, ans, places); return ans; } // col and lines bool valid(int i, int j, vector<int> &places) { for(int p = 0; p<i; p++) { if(places[p] == j || abs(i - p) == abs(places[p] - j)) return false; } return true; } void placeQueen(int i, int n, int &ans, vector<int> &places) { // one solution if(i == n) { ans++; } for(int col = 0; col < n; col++) { if(valid(i,col,places)) { places[i] = col; placeQueen(i+1,n,ans,places); // next queue, next line } } } };