Mediana de flujo de enteros en ejecución usando STL

Dado que los enteros se leen de un flujo de datos. Encuentre la mediana de todos los elementos leídos hasta ahora desde el primer entero hasta el último entero. Esto también se llama la Mediana de Enteros Corrientes. El flujo de datos puede ser cualquier fuente de datos, por ejemplo, un archivo, una array de … Continue reading «Mediana de flujo de enteros en ejecución usando STL»

Ordenar elementos por frecuencia | Conjunto 4 (Enfoque eficiente usando hash)

Imprime los elementos de una array en frecuencia decreciente si 2 números tienen la misma frecuencia y luego imprime el que vino primero. Ejemplos:  Input : arr[] = {2, 5, 2, 8, 5, 6, 8, 8} Output : arr[] = {8, 8, 8, 2, 2, 5, 5, 6} Input : arr[] = {2, 5, 2, … Continue reading «Ordenar elementos por frecuencia | Conjunto 4 (Enfoque eficiente usando hash)»

¿Cómo hacer que Mergesort realice comparaciones O (n) en el mejor de los casos?

Como sabemos, Mergesort es un algoritmo de divide y vencerás que divide la array en mitades recursivamente hasta que alcanza una array del tamaño de 1, y luego combina las subarreglas ordenadas hasta que la array original está completamente ordenada. La implementación típica de la ordenación por fusión funciona en tiempo O(n Log n) en … Continue reading «¿Cómo hacer que Mergesort realice comparaciones O (n) en el mejor de los casos?»

Comprobar si hay un ciclo con suma de peso impar en un gráfico no dirigido

Dado un gráfico ponderado y no dirigido, necesitamos encontrar si existe un ciclo en este gráfico tal que la suma de los pesos de todos los bordes en ese ciclo resulte impar. Ejemplos:  Input : Number of vertices, n = 4, Number of edges, m = 4 Weighted Edges = 1 2 12 2 3 … Continue reading «Comprobar si hay un ciclo con suma de peso impar en un gráfico no dirigido»

Perímetro mínimo de n bloques

Nos dan n bloques de tamaño 1 x 1, necesitamos encontrar el perímetro mínimo de la cuadrícula formada por estos bloques. Ejemplos:   Input : n = 4 Output : 8 Minimum possible perimeter with 4 blocks is 8. See below explanation. Input : n = 11 Output : 14 The square grid of above examples … Continue reading «Perímetro mínimo de n bloques»

Maximice la array binaria invirtiendo la subarray una vez

Dada una array binaria de R filas y C columnas. Se nos permite cambiar a cualquier tamaño de subarray. Voltear significa cambiar 1 a 0 y 0 a 1. La tarea es maximizar el número de 1 en la array. Salida el número máximo de 1s. Ejemplos:  Input : R = 3, C =3 mat[][] … Continue reading «Maximice la array binaria invirtiendo la subarray una vez»

Programación de tareas prioritarias en tiempo limitado y minimización de pérdidas

Dadas n tareas con hora de llegada, prioridad y número de unidades de tiempo que necesitan. Necesitamos programar estas tareas en un solo recurso. El objetivo es organizar las tareas de manera que se tomen las tareas de máxima prioridad. El objetivo es minimizar la suma del producto de la prioridad y el tiempo restante … Continue reading «Programación de tareas prioritarias en tiempo limitado y minimización de pérdidas»

Comprobar si un número es potencia de 8 o no

Dado un número, comprueba si es una potencia de 8 o no. Ejemplos:  Input : n = 64 Output : Yes Input : 75 Output : No Primera solución Calculamos log8(n) del número si es un número entero, entonces n está en la potencia de 8. Usamos la función trunc(n) que encuentra el número entero … Continue reading «Comprobar si un número es potencia de 8 o no»