Encuentra si hay un camino entre dos celdas en la array

Dada la array NXN llena con 1, 0, 2, 3. Averigüe si hay un camino posible desde el origen hasta el destino, atravesando solo celdas en blanco. Puede desplazarse hacia arriba, abajo, derecha e izquierda.  Un valor de la celda 1 significa Fuente. Un valor de la celda 2 significa Destino. Un valor de celda … Continue reading «Encuentra si hay un camino entre dos celdas en la array»

Rotaciones circulares mínimas para obtener una string numérica dada evitando un conjunto de strings dadas

Dado un objetivo de string numérica de longitud N y un conjunto de strings numéricas bloqueadas , cada una de longitud N , la tarea es encontrar el número mínimo de rotaciones circulares requeridas para convertir una string inicial que consta de solo 0 en el objetivo evitando cualquiera de las cuerdas presentes en bloqueado … Continue reading «Rotaciones circulares mínimas para obtener una string numérica dada evitando un conjunto de strings dadas»

Construya un árbol binario a partir de la array de antepasados ​​| Enfoque de arriba hacia abajo

Dada una array de antepasados ​​mat[n][n] donde la array de antepasados ​​se define como se muestra a continuación.  mat[i][j] = 1 if i is ancestor of j mat[i][j] = 0, otherwise Construya un árbol binario a partir de la array de ancestro dada donde todos sus valores de Nodes sean de 0 a n-1.   Se … Continue reading «Construya un árbol binario a partir de la array de antepasados ​​| Enfoque de arriba hacia abajo»

Tiempo máximo requerido para que todos los pacientes se infecten

Dada una array arr[][] , que consta de solo 0, 1 y 2, que representa una sala vacía , un paciente no infectado y un paciente infectado, respectivamente. En una unidad de tiempo, una persona infectada en el índice (i, j) puede infectar a una persona no infectada adyacente, es decir, en el índice (i … Continue reading «Tiempo máximo requerido para que todos los pacientes se infecten»

Valor máximo en cada nivel en un árbol N-ario

Dado un árbol N-ario que consta de Nodes valorados en el rango [0, N – 1] y una array arr[] donde cada Node i está asociado al valor arr[i] , la tarea es imprimir el valor máximo asociado con cualquier Node en cada nivel del árbol N-ario dado . Ejemplos: Entrada: N = 8, Bordes[][] … Continue reading «Valor máximo en cada nivel en un árbol N-ario»

Distancia entre el par de islas más cercano

Dada una cuadrícula[][] que contiene 0 y 1 , donde ‘0’ representa agua y ‘1’ representa tierra. Dado que una isla es un grupo de tierra (1s) rodeada de agua (0s) por todos lados. La tarea es encontrar la distancia entre las dos islas más cercanas tal que: La distancia entre dos islas es el … Continue reading «Distancia entre el par de islas más cercano»

Ruta más corta en un gráfico ponderado donde el peso de un borde es 1 o 2

Dado un gráfico dirigido donde cada borde tiene un peso de 1 o 2, encuentre el camino más corto desde un vértice de origen dado ‘s’ hasta un vértice de destino dado ‘t’. La complejidad de tiempo esperada es O(V+E).  Una solución simple es usar el algoritmo de ruta más corta de Dijkstra , podemos … Continue reading «Ruta más corta en un gráfico ponderado donde el peso de un borde es 1 o 2»

Compruebe si un gráfico dado está conectado en 2 aristas o no

Dado un grafo no dirigido G , con V vértices y E aristas, la tarea es comprobar si el grafo tiene 2 aristas conectadas o no. Se dice que un grafo tiene 2 aristas conectadas si, al eliminar cualquier arista del gráfico, aún permanece conectado, es decir, no contiene puentes .  Ejemplos:  Entrada: V = … Continue reading «Compruebe si un gráfico dado está conectado en 2 aristas o no»

Tiempo mínimo que tarda cada trabajo en completarse dado por un gráfico acíclico dirigido

Dado un gráfico acíclico dirigido que tiene V vértices y E aristas, donde cada arista {U, V} representa los trabajos U y V , de modo que el trabajo V solo puede iniciarse después de completar el trabajo U. La tarea es determinar el tiempo mínimo que tarda cada trabajo en completarse, donde cada trabajo … Continue reading «Tiempo mínimo que tarda cada trabajo en completarse dado por un gráfico acíclico dirigido»

Mejor primera búsqueda (búsqueda informada)

En BFS y DFS , cuando estamos en un Node, podemos considerar cualquiera de los adyacentes como el siguiente Node. Entonces, tanto BFS como DFS exploran caminos a ciegas sin considerar ninguna función de costo.  La idea de Best First Search es utilizar una función de evaluación para decidir qué adyacente es más prometedor y … Continue reading «Mejor primera búsqueda (búsqueda informada)»