Introducción

1

Estructuras de Datos: Grafos y Árboles en Profundidad

2

Estructuras de Árbol: Nodos, Raíces y Jerarquías

3

Recursión y secuencia de Fibonacci en programación

4

Aplicaciones Prácticas de Grafos en Tecnología

5

Representación de Grafos: Matriz y Lista de Adyacencia

DFS

6

Recorrido en Profundidad (DFS) en Árboles y Grafos

7

Algoritmo DFS en JavaScript: Búsqueda en Árboles

8

Búsqueda en Profundidad (DFS) en Grafos: Iterativa y Recursiva

9

Recorridos en Árboles: Inorder, Preorder y Postorder

10

Suma de Números en Caminos Raíz-Hoja en Árboles Binarios

11

Suma de Caminos en Árbol con DFS en Python

12

Playground: Sum Root to Leaf Numbers

13

Implementación de Árboles Binarios en Golang

14

Algoritmo DFS para Contar Islas en Matrices Binarias

15

Conteo de Islas en Matrices con DFS

16

Playground: Number of Islands

17

Programación Recursiva: Resolver Problemas con DFS en Python

18

Rellenar Sección de Imagen con Algoritmo DFS

19

Búsqueda en Profundidad para Procesamiento de Imágenes

BFS

20

Algoritmo BFS: Exploración en Anchura de Grafos y Árboles

21

Implementación de BFS en Árboles con Python

22

Algoritmo BFS para mover el caballo de ajedrez

23

Saltos mínimos con caballo en ajedrez infinito: Resuelve BFS.

24

Playground: Minimum Knights Moves

25

Suma de matrices en Python: Paso a Paso

26

Propagación de Plagas en Matrices: Cálculo de Días Totales

27

Propagación de plagas con BFS en matrices cuadradas

28

Playground: Rotting Oranges

29

Matrices y Algoritmos: Implementación en Java

30

Puente más Corto entre Islas en Matrices Binarias

31

Construcción de Puentes Cortos entre Islas en Matrices Numéricas

32

Playground: Shortest Bridge Between Islands

33

Resuelve problemas con el algoritmo Breadth-First Search en Python

34

Búsqueda Breadth-First (BFS) en Grafos: Conceptos y Ejercicios

35

Búsqueda en Anchura para Problemas de Grafos

Backtrack

36

Solución de Problemas con Algoritmo Backtracking en Laberintos

37

Combinaciones de Letras en Números Telefónicos

38

Combinaciones de Letras en Números Telefónicos con Backtracking

39

C++: Generación de combinaciones en un teclado numérico

40

Playground: Letter Combinations of a Phone Number

41

Formación de direcciones IP válidas a partir de cadenas numéricas

42

Algoritmo para Crear Direcciones IP Válidas en C++

43

Playground: Restore IP Addresses

44

Resolución del Problema Word Search en Tableros MxN

45

Búsqueda de palabras en matrices usando backtracking y DFS

46

Playgrund: Word Search

47

Búsqueda de Palabras en Matrices con JavaScript

48

Algoritmos para resolver N-Reinas en Python

49

Programación backtracking para resolver Sudoku

50

Combinaciones Únicas de Sumas de Enteros

Próximos pasos

51

Árboles AVL: Balanceo Automático en Estructuras de Datos

52

Algoritmos de Búsqueda Eficientes y Su Aplicación Práctica

Algoritmos para resolver N-Reinas en Python

48/52

Lectura

N-Queens

El rompecabezas de n reinas es el problema de colocar n reinas en un tablero de ajedrez de n x n de manera que ninguna de ellas se ataque mutuamente.
Dado un número entero n, devuelva todas las soluciones distintas del rompecabezas de n reinas. Puede devolver la respuesta en cualquier orden. Cada solución contiene una configuración del tablero distinta de la colocación de n reinas, donde “Q” y “.” indican una reina y un espacio vacío, respectivamente.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 1

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Mi solución: ```js def check_valid_board(board, queens, n): DIRECTIONS = [(1, 1), (1, -1), (-1, 1), (-1, -1)] for queen in queens: for direction in DIRECTIONS: i, j = queen offset_i, offset_j = direction while True: i += offset_i j += offset_j if i < 0 or i >= n or j < 0 or j >= n: break if board[i][j] == 'Q': return False return True def append_queen_to_board(i, combinations, taken_columns, queens, n, current_board): if len(queens) == n: splitted_board = current_board.split("|") if check_valid_board(splitted_board, queens, n): combinations.append(splitted_board) return current_board += '|' for index in range(n): if index not in taken_columns: current_combination = '.' * index + 'Q' + '.' * (n - index - 1) append_queen_to_board(i + 1, combinations, taken_columns + [index], queens + [(i + 1, index)], n, current_board + current_combination) def n_queens(n): combinations = [] taken_columns = [] queens = [] for i in range(n): current_board = '.' * i + 'Q' + '.' * (n - i - 1) append_queen_to_board(0, combinations, taken_columns + [i], queens + [(0, i)], n, current_board) return combinations ```