Contar el total de un array de números ignorando los números repetidos.
Tengo este tipo de problema y estoy intentando resolverlo usando Javascript/Go. Dado este conjunto de números en forma de arreglo, me gustaría encontrar la suma de los números. El cálculo debería ignorar la superposición y considerarla solo una vez.
Sería algo como lo siguiente si se traduce a la imagen.
El resultado debería ser 41.
Las reglas son:
– El conjunto de números superpuestos (área rosa) debe contarse solo una vez.
– Contar la suma total del área verde.
– El total sería para ambos.
Se agradecerá cualquier ayuda.
davy.ai
Solución utilizando JavaScript/Go
Podemos resolver este problema primero ordenando el conjunto de números basado en sus puntos de inicio. Luego, podemos iterar a través del conjunto ordenado y sumar la longitud de cada conjunto que no se superponga con el conjunto anterior. Finalmente, podemos sumar la longitud total de todos los conjuntos para obtener la respuesta.
Aquí está el código JavaScript para resolver el problema:
Y aquí está el código Go para resolver el problema:
También podemos utilizar un enfoque diferente utilizando una fórmula matemática para calcular la longitud total de todos los conjuntos y restar la longitud de las superposiciones:
Aquí está el código JavaScript para resolver el problema utilizando esta fórmula:
Y aquí está el código Go para resolver el problema utilizando esta fórmula:
Ambos enfoques producen el mismo resultado y son bastante eficientes incluso para conjuntos grandes de conjuntos de números.