Recuento de caracteres desagrupados después de dividir una string en K grupos de caracteres distintos

Dada una string alfabética inferior “S” de tamaño N y un número entero K ; la tarea es encontrar el conteo de caracteres que permanecerán sin agrupar, luego de dividir la string dada en K grupos de caracteres distintos. Ejemplos:   Entrada: S = “quedarseencasasalvavida”, K = 1  Salida: 6  Explicación:  En la string S los … Continue reading «Recuento de caracteres desagrupados después de dividir una string en K grupos de caracteres distintos»

¿Cómo aprender a imprimir patrones fácilmente?

La tarea es imprimir un patrón como se muestra en el ejemplo para un valor entero dado. El objetivo no es imprimir solo este patrón, es aprender el mejor enfoque para resolver este tipo de problemas, ya que estas preguntas se hacen con frecuencia en los exámenes de codificación y en las entrevistas de trabajo. … Continue reading «¿Cómo aprender a imprimir patrones fácilmente?»

Diseñe una estructura de datos que admita insertar, eliminar, getRandom en O(1) con duplicados

Diseñe una estructura de datos que pueda soportar las siguientes operaciones en O(1) Time Complexity . insert(x): Inserta x en la estructura de datos. Devuelve True si x no estaba presente y False si ya estaba presente. remove(x): Elimina x de la estructura de datos, si está presente. getRandom(): Devuelve aleatoriamente cualquier valor presente en … Continue reading «Diseñe una estructura de datos que admita insertar, eliminar, getRandom en O(1) con duplicados»

Consultas de rango para contar el número de valores de paridad pares con actualizaciones

Dada una array arr[] de N enteros, la tarea es realizar las siguientes dos consultas:  consulta (L, R) : Imprime el número de números de paridad par en el subarreglo de L a R. update(i, x) : actualiza la referencia del elemento de array por índice i a x. Ejemplos:   Entrada: arr[] = {18, 15, … Continue reading «Consultas de rango para contar el número de valores de paridad pares con actualizaciones»

Minimizar la diferencia máxima entre elementos adyacentes en una array

Dada una array no decreciente arr[] y un entero K , la tarea es eliminar K elementos de la array de modo que la diferencia máxima entre los elementos adyacentes sea mínima. Nota: K < N – 2 Ejemplos:  Entrada: arr[] = {3, 7, 8, 10, 14}, K = 2  Salida: 2  Explicación:  Después de … Continue reading «Minimizar la diferencia máxima entre elementos adyacentes en una array»

Generar array original a partir de la diferencia entre cada dos elementos consecutivos

Dadas N – 1 diferencias entre dos elementos consecutivos de una array que contiene N números que están en el rango de 1 a N. La tarea es determinar la array original usando las diferencias dadas. Si es posible, imprima la array, de lo contrario, imprima -1 . Ejemplos:   Entrada: diff[] = {2, -3, 2}  … Continue reading «Generar array original a partir de la diferencia entre cada dos elementos consecutivos»

Análisis de la complejidad de la búsqueda binaria

Complejidades como O(1) y O(n) son fáciles de entender. O(1) significa que requiere un tiempo constante para realizar operaciones como llegar a un elemento en un tiempo constante como en el caso del diccionario y O(n) significa que depende del valor de n para realizar operaciones como buscar un elemento en una array de n … Continue reading «Análisis de la complejidad de la búsqueda binaria»

Maximice las ganancias en la compra y venta de acciones con la condición de descanso

El precio de una acción en cada día se da en una array arr[] para N días, la tarea es encontrar la ganancia máxima que se puede obtener comprando y vendiendo las acciones en esos días con las condiciones de que la acción debe venderse antes. comprar nuevamente y las acciones no se pueden comprar … Continue reading «Maximice las ganancias en la compra y venta de acciones con la condición de descanso»

Divida una array dada en K subarreglos minimizando la diferencia entre su máximo y mínimo

Dada una array ordenada arr[] de N enteros y un entero K , la tarea es dividir la array en K subarreglos de manera que la suma de la diferencia del elemento máximo y mínimo de cada subarreglo se minimice. Ejemplos:  Entrada: arr[] = {1, 3, 3, 7}, K = 4  Salida: 0  Explicación:  La … Continue reading «Divida una array dada en K subarreglos minimizando la diferencia entre su máximo y mínimo»

Conocer la complejidad en la programación competitiva

Prerrequisito: Análisis de Complejidad de Tiempo En general, mientras se realizan problemas de programación competitivos en varios sitios, la tarea más difícil que se enfrenta es escribir el código con la complejidad deseada; de lo contrario, el programa obtendrá un TLE ( límite de tiempo excedido ). Casi nunca se acepta una solución ingenua. Entonces, … Continue reading «Conocer la complejidad en la programación competitiva»