Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

121
Visualizações
Atravesando la matriz 2D en el problema N-Queens

Estoy tratando de resolver el problema de N-Queens usando el retroceso. El enlace al problema de N-Queens se puede encontrar aquí, https://leetcode.com/problems/n-queens/ , visite ese enlace para comprender mejor el problema. Sin embargo, solo quiero compartir una parte del código que encuentro difícil de entender. Por favor, ¿alguien puede explicarme cómo funciona el //marque arriba, //marque arriba - izquierda, //marque arriba a la derecha? Me resulta difícil entender esta sección particular del código.

 var isValid = function(board, row, col) { const n = board.length; // check top for (let i = 0; i < row; i++) { if (board[i][col] === 'Q') return false; } // check top-left for (let i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) { if (board[i][j] === 'Q') return false; } // check top-right for (let i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++) { if (board[i][j] === 'Q') return false; } return true; }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Según tengo entendido, debemos verificar si la posición actual es "segura". Así que no hay reinas en el campo que puedan alcanzar la posición. Para hacerlo, debemos marcar Vertical, Horizontal y Diagonales (ambos). Este código probablemente verifica solo las filas por encima de la actual.

El bloque de código superior izquierdo hace lo siguiente: imagina que la posición actual es x=4, y=3. Entonces, para verificar la diagonal superior izquierda, debemos observar las posiciones:

  • x=3, y=2
  • x=2, y=1
  • x=1, y=0

Para hacerlo, seleccionamos inicialmente la posición let i = row - 1, j = col - 1 (un paso a la izquierda y uno arriba del actual). Y luego, para cada paso siguiente, muévase hacia arriba y hacia la izquierda: i--, j--

Repítalo hasta que llegue al borde: i >= 0 && j >= 0

El bloque superior derecho realiza la misma operación, excepto que debemos movernos hacia la derecha (aumentar la X).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda