Contenido del curso
DFS
- 6

Cómo recorre nodos el algoritmo DFS
04:49 min - 7

Implementación de DFS recursivo para búsqueda en árboles
12:10 min - 8

Búsqueda en Profundidad (DFS) para Grafos: Enfoque Iterativo y Recursivo
01:27 min - 9

Inorder, Preorder y Postorder en árboles
07:09 min - 10

Suma de caminos raíz a hoja en árboles
02:04 min - 11

Suma de caminos raíz a hoja con DFS
07:31 min - 12

Playground: Sum Root to Leaf Numbers
- 13

Implementación de Algoritmo DFS en Árboles Binarios con Golang
15:03 min - 14

Número de islas con DFS en matrices
Viendo ahora - 15

Problema de islas resuelto con DFS
08:50 min - 16

Playground: Number of Islands
- 17

Número de islas con DFS recursivo en Python
10:18 min - 18

Ejercicios Prácticos de Búsqueda en Profundidad (DFS)
02:22 min - 19

Algoritmos de Búsqueda en Profundidad (DFS) en Problemas Comunes
06:19 min
BFS
- 20

Cómo BFS recorre grafos por niveles
02:05 min - 21

Implementación de BFS con colas en Python
08:42 min - 22

Mínimos movimientos del caballo en ajedrez
02:55 min - 23

Minimum Knight's Move con BFS
08:11 min - 24

Playground: Minimum Knights Moves
- 25

Resolución de Problemas de Caballos de Ajedrez con BFS en Python
17:49 min - 26

Propagación BFS en Rotting Oranges
03:50 min - 27

Resolución de Rotting Oranges usando BFS
08:43 min - 28

Playground: Rotting Oranges
- 29

Implementación de BFS para naranjas podridas
23:44 min - 30

Puente más corto entre islas con BFS
03:38 min - 31

Shortest Bridge: combina DFS y BFS
07:35 min - 32

Playground: Shortest Bridge Between Islands
- 33

Shortest Bridge con DFS y BFS en Python
14:57 min - 34

Búsqueda en anchura: Ejercicios prácticos y aplicaciones
03:41 min - 35

Ejercicios avanzados de búsqueda en anchura (BFS) en programación
08:47 min
Backtrack
- 36

Backtracking para encontrar soluciones válidas
04:20 min - 37

Combinaciones de letras en teclado telefónico
01:51 min - 38

Combinaciones de teclado con backtracking
09:19 min - 39

Generación de combinaciones de letras con teclados numéricos en C++
14:08 min - 40

Playground: Letter Combinations of a Phone Number
- 41

Generación de Direcciones IP Válidas a partir de Cadenas Numéricas
03:51 min - 42

Backtracking para generar IPs válidas
28:16 min - 43

Playground: Restore IP Addresses
- 44

Búsqueda de Palabras en Matrices: Solución y Complejidad
02:54 min - 45

Word Search con DFS y backtracking
08:30 min - 46

Playgrund: Word Search
- 47

Búsqueda de palabras en matrices con DFS
18:18 min - 48

Resolución del problema de las n reinas en ajedrez
01:08 min - 49

Ejercicios de Backtracking: Combinaciones y Permutaciones
01:05 min - 50

Combinaciones y Permutaciones con Backtracking
02:14 min
Próximos pasos
Número de islas con DFS en matrices
Resumen
El problema número de islas aparece con frecuencia en entrevistas técnicas de empresas como Google, Microsoft o Facebook, y entender cómo abordarlo te prepara para resolver retos de matrices y grafos en cualquier proceso de selección. Aquí desglosamos el enunciado, los conceptos que necesitas dominar y la pista que te llevará a tu propia solución.
¿En qué consiste el problema número de islas?
La idea es trabajar con una matriz binaria de tamaño M por N, donde cada casilla solo puede contener el valor uno o cero. Cada número representa un tipo de terreno distinto y tu tarea es contar cuántas islas existen en ese mapa.
- El valor 1 representa tierra.
- El valor 0 representa agua.
- El resultado esperado es un entero: el número total de islas.
¿Qué es una matriz binaria? Es una estructura bidimensional donde cada celda solo admite dos valores posibles, típicamente 0 y 1. Sirve para modelar mapas, imágenes en blanco y negro o cualquier estado dual.
¿Cómo se define una isla en este contexto?
Una isla es un grupo de tierra rodeada de agua que se forma conectando casillas adyacentes con valor uno. Si dos pedazos de tierra están pegados horizontal o verticalmente, no cuentan como dos islas separadas, sino como una sola isla más grande [01:00].
Además, puedes asumir que los cuatro bordes de la cuadrícula están rodeados de agua. Esto significa que una isla pegada a una esquina sigue siendo una isla válida, aunque no veas agua en dos de sus lados.
¿Cómo se ve una entrada de datos típica?
Imagina una matriz llena de unos y ceros. A simple vista, como humano, puedes detectar tres islas en un ejemplo pequeño solo mirando los grupos conectados de unos [01:30]. El reto aparece cuando la matriz crece.
¿Qué pasa si el mapa representa una región enorme, con miles o millones de celdas? Ahí es donde un algoritmo se vuelve indispensable, porque tu ojo ya no alcanza y necesitas una estrategia sistemática para recorrer cada celda y agrupar las tierras conectadas.
¿Por qué este problema es popular en entrevistas? Porque combina recorrido de matrices, conectividad entre nodos y pensamiento en grafos. Permite evaluar si sabes aplicar búsquedas como DFS o BFS sobre estructuras no triviales.
¿Qué algoritmo puedes usar para resolverlo?
La pista directa que te da la clase es usar DFS, es decir, Depth First Search o búsqueda en profundidad, un algoritmo que ya cubrimos antes en el curso [01:50]. La intuición es simple: recorres la matriz celda por celda, y cuando encuentras un uno, exploras en profundidad todas las tierras conectadas a esa casilla, marcándolas como visitadas. Cada vez que inicias una nueva exploración desde un uno no visitado, sumas una isla al contador.
- Recorres la matriz con dos bucles anidados.
- Cuando encuentras una celda con valor uno sin visitar, incrementas el contador.
- Lanzas una búsqueda en profundidad para marcar toda la isla conectada.
- Continúas hasta cubrir todas las celdas.
No es la única ruta posible. También podrías pensar en Breadth First Search o en estructuras como Union Find, que agrupan elementos conectados de forma eficiente.
¿Cuál es tu reto antes de la siguiente clase?
Antes de ver la solución implementada, tu trabajo es diseñar tu propio enfoque. No necesitas escribir código todavía, solo describir el proceso paso a paso: cómo recorrerías la matriz, cómo decidirías que una celda pertenece a una isla ya contada y cómo evitarías visitar la misma tierra dos veces.
Deja tu propuesta en los comentarios, lee las de tus compañeros y comenta las que te parezcan interesantes. Nos vemos en la siguiente clase.