Se hicieron cuatro preguntas en la plataforma en línea hackerrank, fueron
1. Anna tiene una array, num, de n enteros. Puede reducir la array en 1 elemento realizando un movimiento. Cada movimiento consta de los siguientes tres pasos:
Escoja dos elementos numi y numj, tales que i ? j.
Elimina los dos elementos seleccionados (numi y numj) de la array.
Agregue la suma de los elementos eliminados (numi + numj) como un nuevo elemento al final de la array.
Cada movimiento tiene un costo asociado, y este costo es igual a la suma de los dos elementos eliminados de la array durante el movimiento. El costo de reducir la array en n?1 elementos (es decir, a un solo elemento) es la suma de los costos de todos los n?1 movimientos. Por ejemplo, considere la array num = [1, 2, 3]. Anna elimina 1 y 3 en su primer movimiento a un costo de 1 + 3 = 4, y la array resultante es num1 = [2, 4]. Luego elimina 2 y 4 en su segundo movimiento a un costo de 2 + 4 = 6, y la array resultante es num2 = [6]. El costo total de reducir esta array a un elemento usando esta secuencia de movimientos es 4 + 6 = 10.
Complete la función de reducción de costos en su editor. Tiene 1 parámetro: una array de n enteros, num. Debe devolver un número entero que indique el costo mínimo de reducir la array a un solo elemento.
Solución: se hace fácilmente usando minheap, cola de prioridad en c ++
2. Segregar números pares e impares
3. Una red social tiene n usuarios activos, numerados de 0 a n — 1, que seleccionan amigos de otros usuarios para crear grupos de amigos dentro de la red. Definimos lo siguiente:
Dos usuarios, x e y, son amigos directos si se hacen amigos en la red.
Dos usuarios, x y z, son amigos indirectos si existe algún amigo directo, y, común a ambos usuarios x y z.
Dos usuarios, x e y, pertenecen al mismo grupo si son amigos (directa o indirectamente) entre sí.
En otras palabras, si el usuario x es parte de un grupo, entonces todos los amigos del usuario x y los amigos de los amigos pertenecen al mismo grupo.
Describimos la cantidad de personas en cada grupo como una array de n números enteros, cuentas, donde cada cuentasi (0 ? i < n) denota la cantidad total de usuarios en el grupo al que pertenece el usuario i. Por ejemplo, si cuenta = [3, 3, 3, 3, 3, 1, 3], entonces hay tres grupos; los usuarios 0, 1, 2, 3, 4 y 6 están en uno de dos grupos de 3 personas, y el usuario 5 está en un grupo de 1 persona.
ID 0 1 2 3 4 5 6 Group Size 3 3 3 3 3 1 3
Un grupo es válido si todos los usuarios del grupo tienen números de identificación mínimos. En otras palabras, un grupo de tamaño k debe contener los k números de ID más pequeños pertenecientes a un grupo de ese tamaño con respecto al ID de usuario más pequeño del grupo. Por ejemplo, si cuenta = [3, 3, 3, 3, 3, 1, 3], entonces la agrupación [0, 1, 2], [3, 4, 6] y [5] es válida; sin embargo, la agrupación [0, 1, 4], [2, 3, 6] y [5] no es válida porque el grupo [0, 1, 4] no contiene los tres ID de usuario más pequeños para el conjunto de usuarios. ID pertenecientes a grupos de 3 personas (es decir, {0, 1, 2, 3, 4, 6}).
4. Se dice que dos strings, ayb, son gemelas sólo si pueden hacerse equivalentes realizando cierto número de operaciones en una o ambas strings. Hay dos operaciones posibles:
SwapEven: Intercambia un carácter en un índice de números pares con un carácter en otro índice de números pares.
SwapOdd: Intercambia un carácter en un índice impar con un carácter en otro índice impar.
Por ejemplo, a = “abcd” y b = “cdab” son gemelos porque podemos hacerlos equivalentes realizando operaciones. Alternativamente, a = «abcd» y b = «bcda» no son gemelos (las operaciones no mueven caracteres entre índices pares e impares), y tampoco lo son a = «abc» y b = «ab» (ninguna cantidad de operaciones insertará una ‘c’ en la string b).
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA