Descomposición ligera pesada | Conjunto 2 (Implementación)

Recomendamos encarecidamente consultar la publicación a continuación como requisito previo para esto. Descomposición ligera pesada | Conjunto 1 (Introducción) En la publicación anterior, discutimos la descomposición Heavy-light (HLD) con la ayuda del siguiente ejemplo. Supongamos que tenemos un árbol desequilibrado (no necesariamente un árbol binario) de n Nodes , y tenemos que realizar operaciones en el … Continue reading «Descomposición ligera pesada | Conjunto 2 (Implementación)»

Encuentre la última URL única de una larga lista de URL en un solo recorrido

Dada una lista muy larga de URL, averigüe la última URL única. Solo se permite un recorrido de todas las URL. Ejemplos: Input: https://www.geeksforgeeks.org https://www.geeksforgeeks.org/quiz-corner-gq/ http://qa.geeksforgeeks.org https://practice.geeksforgeeks.org https://ide.geeksforgeeks.org https://write.geeksforgeeks.org https://www.geeksforgeeks.org/quiz-corner-gq/ https://practice.geeksforgeeks.org https://ide.geeksforgeeks.org https://www.geeksforgeeks.org/quiz-corner-gq/ http://qa.geeksforgeeks.org https://practice.geeksforgeeks.org Output: https://write.geeksforgeeks.org Podemos resolver este problema en un recorrido utilizando Triecon una Lista Doblemente Vinculada (Podemos insertar y borrar en … Continue reading «Encuentre la última URL única de una larga lista de URL en un solo recorrido»

Par de palíndromos en una array de palabras (o strings)

Dada una lista de palabras, encuentra si alguna de las dos palabras se puede unir para formar un palíndromo. Ejemplos:  Input : list[] = {«geekf», «geeks», «or», «keeg», «abc», «bc»} Output : Yes There is a pair «geekf» and «keeg» Input : list[] = {«abc», «xyxcba», «geekst», «or», «keeg», «bc»} Output : Yes There is … Continue reading «Par de palíndromos en una array de palabras (o strings)»

Cuente los elementos más pequeños en el lado derecho y los elementos más grandes en el lado izquierdo usando el árbol de índice binario

Dada una array arr[] de tamaño N . La tarea es encontrar elementos más pequeños en el lado derecho y elementos más grandes en el lado izquierdo para cada elemento arr[i] en la array dada. Ejemplos:   Entrada: arr[] = {12, 1, 2, 3, 0, 11, 4}  Salida:  Menor derecha: 6 1 1 1 0 1 … Continue reading «Cuente los elementos más pequeños en el lado derecho y los elementos más grandes en el lado izquierdo usando el árbol de índice binario»

Comprobar si las palabras dadas están presentes en una string

Dada una string grande y una serie de strings pequeñas, todas las cuales son más pequeñas que la string grande. La tarea es crear una array de booleanos, donde cada booleano representa si la string pequeña en ese índice en la array de strings pequeñas está contenida en la string grande. Nota: no puede usar … Continue reading «Comprobar si las palabras dadas están presentes en una string»

Suma del elemento mínimo en cada profundidad de un gráfico no cíclico dado

Dado un gráfico no cíclico que tiene V Nodes y E aristas y un Node fuente S , la tarea es calcular la suma del elemento mínimo en cada nivel del Node fuente S en el gráfico dado. Ejemplos: Entrada: S = 0, a continuación se muestra el gráfico dado   Salida: 5  Explicación:  Solo hay … Continue reading «Suma del elemento mínimo en cada profundidad de un gráfico no cíclico dado»

Ordenación lexicográfica usando Heap Sort

Dada una array arr[] de strings. La tarea es ordenar la array en orden lexicográfico usando Heap Sort . Ejemplos:   Entrada: arr[] = { “plátano”, “manzana”, “mango”, “piña”, “naranja” }  Salida: manzana plátano mango naranja piña Entrada: arr[] = { “CAB”, “ACB”, “ ABC”, “CBA”, “BAC” }  Salida: ABC, ACB, BAC, BCA, CAB, CBA   Enfoque: … Continue reading «Ordenación lexicográfica usando Heap Sort»

Implementación de Binomial Heap | Establecer – 2 (eliminar() y decreseKey())

En una publicación anterior, es decir, el Conjunto 1, hemos discutido que implementa las siguientes funciones: insert(H, k): inserta una clave ‘k’ en el montón binomial ‘H’. Esta operación primero crea un montón binomial con una sola clave ‘k’, luego llama a la unión en H y al nuevo montón binomial. getMin(H): una forma sencilla … Continue reading «Implementación de Binomial Heap | Establecer – 2 (eliminar() y decreseKey())»

Trie persistente | Serie 1 (Introducción)

Requisito previo:  prueba Persistencia en la estructura de datos Trie es una estructura de datos útil que a menudo entra en juego cuando se realizan búsquedas de strings múltiples. En esta publicación, presentaremos el concepto de persistencia en esta estructura de datos. La persistencia simplemente significa retener los cambios. Pero, obviamente, retener los cambios provoca … Continue reading «Trie persistente | Serie 1 (Introducción)»

Árboles de segmentos dinámicos: consultas en línea para la suma de rangos con actualizaciones de puntos

Prerrequisitos: Árbol de segmentos Dado un número N que representa el tamaño de la array inicializada en 0 y Q consultas para procesar donde hay dos tipos de consultas:  1 PV: Ponga el valor V en la posición P . 2 LR: salida de la suma de valores de L a R . La tarea … Continue reading «Árboles de segmentos dinámicos: consultas en línea para la suma de rangos con actualizaciones de puntos»