1. var solveNQueens = function(n) {
    2. let list = [],
    3. temp = []
    4. backtrack(0, temp)
    5. return list
    6. // r === row || c == col || r - c === row -col || r + c === row + col
    7. function backtrack(row, temp) {
    8. if(row === n) {
    9. list.push(
    10. temp.map((c) => {
    11. let arr = new Array(n).fill('.')
    12. arr[c] = 'Q'
    13. return arr.join('')
    14. })
    15. )
    16. }
    17. for(let col = 0; col < n; col++) {
    18. let canNotSet = temp.some((c, r) => {
    19. return c === col || (r-c) === (row - col) || (r + c) === (row + col)
    20. })
    21. if(canNotSet) continue
    22. backtrack(row + 1, [...temp, col])
    23. }
    24. }
    25. };