Tell us what’s happening:
Hi,
I think the solutions are correct, but I’m not passing tests 8 and 11.
Your code so far
function dfsNQueens(n){
if (n<1 || n==2 || n==3) return [];
if (n==1)return [[0]];
let soluciones=[]
let tabVacio= Array(n).fill(-1)
let pila=[tabVacio];
while(pila.length>0){
let nuevoTablero=pila.pop()
let longitud=Math.max(...nuevoTablero);
if (longitud==n-1){
soluciones.push(nuevoTablero);
continue;
}
for(let i=0; i<nuevoTablero.length;i++){
let actual=[...nuevoTablero];
if (actual[i]==-1){
actual[i]=longitud+1;
if (esValido(actual)==true){
pila.push(actual);
}
}
}
}
return soluciones;
}
function esValido(tablero){
for (let i=0;i<tablero.length;i++){
if (tablero[i]==-1) continue;
for (let j=i+1; j<tablero.length;j++){
if (tablero[j]==-1) continue;
if (Math.abs(tablero[i] - tablero[j]) == Math.abs(i - j)) {return false;}
}
}
return true;}
console.log(dfsNQueens(5))
Your browser information:
User Agent is: Mozilla/5.0 (X11; Linux x86_64; rv:151.0) Gecko/20100101 Firefox/151.0
Challenge Information:
Implement the N-Queens Problem - Implement the N-Queens Algorithm