在n皇后的问题上稍做修改,faster than 89%
/**
* @param {number} n
* @return {number}
*/
var totalNQueens = function(n) {
var pos = []
var res = []
totalNQueen(n, 0, pos, res)
return res.length
};
var totalNQueen = function(n, cur, pos, res){
if(cur === n) res.push(1)
for(var i = 0; i < n; i++){
pos[cur] = i
if(isValid(n, cur, i, pos)) totalNQueen(n, cur + 1, pos, res)
}
}
var isValid = function(n, cur, index, pos){
for(var i = cur - 1, j = 1; i >= 0; i--, j++){
if(pos[i] === index || pos[i] === index + j || pos[i] === index - j) return false
}
return true
}