Middle
Tarea: combinar dos slices ordenados con valores únicos en un solo slice ordenado con valores únicos
sobes.tech AI
Respuesta de la IA
Para combinar dos listas ordenadas con valores únicos en una sola lista ordenada con valores únicos, se puede usar un algoritmo de fusión, similar a la etapa de fusión en la ordenación por mezcla.
Ejemplo en Go:
func mergeUnique(a, b []int) []int {
result := make([]int, 0, len(a)+len(b))
i, j := 0, 0
for i < len(a) && j < len(b) {
if a[i] < b[j] {
result = append(result, a[i])
i++
} else if a[i] > b[j] {
result = append(result, b[j])
j++
} else { // a[i] == b[j], añadir solo una vez
result = append(result, a[i])
i++
j++
}
}
// Añadir los elementos restantes
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
Este código recorre ambas listas, compara los elementos actuales y añade el menor al resultado. Si los elementos son iguales, añade uno y avanza ambos índices para evitar duplicados. Al final, se obtiene una lista ordenada con valores únicos.