Mínimo en una array que primero disminuye y luego aumenta

Dada una array de N enteros donde los elementos de la array forman una secuencia estrictamente decreciente y creciente. La tarea es encontrar el número más pequeño en tal array. Restricciones : N >= 3  Ejemplos:   Input: a[] = {2, 1, 2, 3, 4} Output: 1 Input: a[] = {8, 5, 4, 3, 4, 10} Output: … Continue reading «Mínimo en una array que primero disminuye y luego aumenta»

Consultas para verificar si existe algún elemento que no se repita dentro del rango [L, R] de una array

Dada una array arr[] que consiste en números enteros y consultas Q de la forma (L, R) , la tarea es verificar si algún elemento que no se repite está presente dentro de los índices [L, R] (indexación basada en 1) o no. Si hay al menos un elemento que no se repite, imprima «Sí» … Continue reading «Consultas para verificar si existe algún elemento que no se repita dentro del rango [L, R] de una array»

Consultas de actualización de rango a XOR con 1 en una array binaria.

Dada una array binaria arr[] de tamaño N . La tarea es responder a las consultas Q que pueden ser de cualquier tipo a continuación:  Tipo 1 – 1 lr : Realiza la operación xor bit a bit en todos los elementos de la array de l a r con 1.  Tipo 2 – 2 … Continue reading «Consultas de actualización de rango a XOR con 1 en una array binaria.»

Consultas de rango de array para encontrar el número máximo de Fibonacci 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 Fibonacci 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 Fibonacci con actualizaciones»

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»

Recuento de formas de elegir 4 elementos de posición únicos, uno de cada array para sumar como máximo K

Dados cuatro arreglos A[], B[], C[], D[] y un entero K. La tarea es encontrar el número de combinaciones de cuatro índices únicos p, q, r, s tales que A[p] + segundo[q] + C[r] + re[s] ≤ K . Ejemplos: Entrada: A = {2, 3}, B = {5, 2}, C = {0}, D = {1, … Continue reading «Recuento de formas de elegir 4 elementos de posición únicos, uno de cada array para sumar como máximo K»

Programa C# para verificar el elemento mayoritario en una array ordenada

Pregunta: Escribe una función para encontrar si un entero x aparece más de n/2 veces en una array ordenada de n enteros. Básicamente, necesitamos escribir una función, digamos isMajority(), que tome una array (arr[] ), el tamaño de la array (n) y un número para buscar (x) como parámetros y devuelva verdadero si x es un … Continue reading «Programa C# para verificar el elemento mayoritario en una array ordenada»

Algoritmo divide y vencerás | Introducción

En este artículo, vamos a discutir cómo la técnica Divide and Conquer es útil y cómo podemos resolver el problema con el enfoque de la técnica DAC. En esta sección, discutiremos los siguientes temas.  1. Introduction to DAC. 2. Algorithms under DAC techniques. 3. Recurrence Relation for DAC algorithm. 4. Problems using DAC technique. Divide … Continue reading «Algoritmo divide y vencerás | Introducción»

Prefijo común más largo usando el algoritmo Divide and Conquer

Dado un conjunto de strings, encuentre el prefijo común más largo.  Ejemplos:  Input : {“geeksforgeeks”, “geeks”, “geek”, “geezer”} Output : «gee» Input : {«apple», «ape», «april»} Output : «ap» Hemos discutido los algoritmos de coincidencia palabra por palabra y carácter por carácter . En este algoritmo, se analiza un enfoque de divide y vencerás. Primero … Continue reading «Prefijo común más largo usando el algoritmo Divide and Conquer»

Ordenación rápida usando subprocesos múltiples

QuickSort es una técnica de clasificación popular basada en el algoritmo divide y vencerás. En esta técnica, se elige un elemento como pivote y la array se divide a su alrededor. El objetivo de la partición es, dada una array y un elemento x de la array como pivote, colocar x en su posición correcta … Continue reading «Ordenación rápida usando subprocesos múltiples»