Introducción
¿Qué es un grafo?
¿Qué es un árbol?
¿Qué es recursión?
Aplicaciones reales de grafos y árboles
Formas de representar un grafo
DFS
Análisis de DFS: algoritmo de búsqueda en profundidad
Programando DFS de forma recursiva
Otras formas de programar DFS
Recorridos y profundidad de un Árbol
Sum Root to Leaf Numbers: análisis del problema
Solución de Sum Root to Leaf Numbers
Playground: Sum Root to Leaf Numbers
Programando Sum Root to Leaf Numbers en Golang
Number of Islands: análisis del problema
Solución de Number of Islands
Playground: Number of Islands
Programando Number of Islands en Python
Ejercicios recomendados de DFS
Ejercicios resueltos de DFS
BFS
Análisis de BFS: algoritmo de búsqueda en anchura
Programando BFS con Python
Minimum Knights Moves (movimientos de caballo en ajedrez): análisis del problema
Solución de Minimum Knights Moves
Playground: Minimum Knights Moves
Programando Minimum Knights Moves con Python
Rotting Oranges: análisis del problema
Solución de Rotting Oranges
Playground: Rotting Oranges
Rotting Oranges con Java
Shortest Bridge Between Islands: análisis del problema
Solución de Shortest Bridge Between Islands
Playground: Shortest Bridge Between Islands
Programando Shortest Bridge Between Islands con Python
Ejercicios recomendados de BFS
Ejercicios resueltos de BFS
Backtrack
Algoritmo de Backtrack
Letter Combinations of a Phone Number: análisis del problema
Solución de Letter Combinations of a Phone Number
Programando Letter Combinations of a Phone Number con C++
Playground: Letter Combinations of a Phone Number
Restore IP Addresses: análisis del problema
Programando Restore IP Addresses con C++
Playground: Restore IP Addresses
Word Search: análisis del problema
Solución de Word Search
Playgrund: Word Search
Programando Word Search JavaScript
Reto: N Queens Puzzle
Ejercicios recomendados de Backtrack
Ejercicios resueltos de Backtrack
Próximos pasos
¿Qué otros algoritmos y tipos de grafos puedes aprender?
¿Quieres más cursos avanzados de algoritmos?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Juan David Castro Gallego
Aportes 3
Preguntas 0
Mi solución:
def numeroDeIslas(mapa):
# Tu código aquí 👇
filas = len(mapa)
if filas > 0:
columnas = len(mapa[0])
""" Primera parte encontrar las cooedernas de todos los "1" en el mapa """
coordenadas=[(1,1)]
coordenadas.pop()
index_x = 0
for x in mapa:
index_y =0
for y in x:
if y == "1":
coordenadas.append((index_x, index_y))
index_y += 1
index_x += 1
""" segunda parte encontrar la cantidad de islas en el mapa"""
count_islands = 0
for island in coordenadas:
current_island = [island]
x = island[0]
y = island[1]
if mapa[x][y] == "0":
continue
else:
print(x,y)
count_islands += 1
for here in current_island:
x = here[0]
y = here[1]
mapa[x][y] = "0"
"""up"""
if y+1 < columnas:
if mapa[x][y+1] == "1":
current_island.append((x,y+1))
"""rigth"""
if x+1 < filas:
if mapa[x+1][y] == "1":
current_island.append((x+1,y))
"""down"""
if y-1 >= 0:
if mapa[x][y-1] == "1":
current_island.append((x,y-1))
"""left"""
if x-1 >= 0:
if mapa[x-1][y] == "1":
current_island.append((x-1,y))
return count_islands
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?