Total de Nodes recorridos en Euler Tour Tree

Ya se ha discutido el recorrido de Euler por el árbol , que aplana la estructura jerárquica del árbol en una array que contiene exactamente 2 * N-1 valores. En este post, la tarea es probar que el grado de Euler Tour Tree es 2 veces el número de Nodes menos uno. Aquí grado significa … Continue reading «Total de Nodes recorridos en Euler Tour Tree»

Consulta de rango máximo usando tabla dispersa

Dada una array arr[] , la tarea es responder consultas para encontrar el máximo de todos los elementos en el rango de índice arr[L…R] . Ejemplos:   Input: arr[] = {6, 7, 4, 5, 1, 3}, q[][] = {{0, 5}, {3, 5}, {2, 4}} Output: 7 5 5 Input: arr[] = {3, 34, 1}, q[][] = … Continue reading «Consulta de rango máximo usando tabla dispersa»

Aplanar un árbol binario en una lista enlazada | Conjunto-2

Dado un árbol binario, aplanarlo en una lista enlazada. Después de aplanar, la izquierda de cada Node debe apuntar a NULL y la derecha debe contener el siguiente Node en orden de nivel. Ejemplo :   Input: 1 / \ 2 5 / \ \ 3 4 6 Output: 1 \ 2 \ 3 \ 4 … Continue reading «Aplanar un árbol binario en una lista enlazada | Conjunto-2»

Consultas por número de elementos distintos en un subarreglo | conjunto 2

Dada una array arr[] de N enteros y Q consultas. Cada consulta se puede representar mediante dos números enteros L y R . La tarea es encontrar el conteo de enteros distintos en el subarreglo arr[L] a arr[R] . Ejemplos: Entrada: arr[] = {1, 1, 3, 3, 5, 5, 7, 7, 9, 9 }, L … Continue reading «Consultas por número de elementos distintos en un subarreglo | conjunto 2»

Número de subarreglos con GCD = 1 | Árbol de segmentos

Dada una array arr[] , la tarea es encontrar el recuento de sub-arrays con GCD igual a 1 . Ejemplos:   Entrada: arr[] = {1, 1, 1}  Salida: 6  Cada subarreglo del arreglo dado tiene GCD  de 1 y hay un total de 6 subarreglos. Entrada: arr[] = {2, 2, 2}  Salida: 0   Enfoque: este problema … Continue reading «Número de subarreglos con GCD = 1 | Árbol de segmentos»

Consultas de rango de array para encontrar el número máximo de Armstrong con actualizaciones

Dada una array arr[] de N enteros, la tarea es realizar las siguientes dos consultas:  máximo (inicio, final) : Imprime el número máximo de elementos de Armstrong en el subarreglo de principio a fin update(i, x) : agregue x al elemento de array al que hace referencia el índice de array i , es decir: … Continue reading «Consultas de rango de array para encontrar el número máximo de Armstrong con actualizaciones»

Programa Java para contar los elementos de la array más que todos los elementos a su izquierda y al menos K elementos a su derecha

Dada una array A[ ] que consta de N enteros distintos, la tarea es encontrar el número de elementos que son estrictamente mayores que todos los elementos que lo preceden y estrictamente mayores que al menos K elementos a su derecha. Ejemplos:   Entrada: A[] = {2, 5, 1, 7, 3, 4, 0}, K = 3  … Continue reading «Programa Java para contar los elementos de la array más que todos los elementos a su izquierda y al menos K elementos a su derecha»

Programa Javascript para consultas LCM de rango

Dada una array de enteros, evalúe consultas de la forma LCM(l, r). Puede haber muchas consultas, por lo tanto, evalúe las consultas de manera eficiente.   LCM (l, r) denotes the LCM of array elements that lie between the index l and r (inclusive of both indices) Mathematically, LCM(l, r) = LCM(arr[l], arr[l+1] , ……… , … Continue reading «Programa Javascript para consultas LCM de rango»

Trie la estructura de datos usando un puntero inteligente y programación orientada a objetos en C++

Implementaremos trie usando punteros inteligentes en C++ y OOP. Aquí , ya hemos discutido la implementación de datos trie usando recursividad En nuestro Node de implementación de un trie parece:   CPP class TrieNode{       public:     // Use of shared_ptr for storing Children     // Pointers of TrieNode       shared_ptr children[ALPHABET_SIZE];       // Tracks whether If this … Continue reading «Trie la estructura de datos usando un puntero inteligente y programación orientada a objetos en C++»

Montón de Fibonacci | Serie 1 (Introducción)

Los montones se utilizan principalmente para implementar la cola de prioridad. Hemos discutido a continuación montones en publicaciones anteriores.  montón binario  Montón binomial  En términos de Complejidad de tiempo, Fibonacci Heap supera a Binary y Binomial Heaps.  A continuación se muestran las complejidades del tiempo amortizado de Fibonacci Heap .  1) Find Min: Θ(1) [Same … Continue reading «Montón de Fibonacci | Serie 1 (Introducción)»