Middle
Tâche : combiner deux slices triés avec des valeurs uniques en un seul slice trié avec des valeurs uniques
sobes.tech IA
Réponse de l'IA
Pour fusionner deux listes triées avec des valeurs uniques en une seule liste triée avec des valeurs uniques, vous pouvez utiliser un algorithme de fusion, similaire à l'étape de fusion dans le tri par fusion.
Exemple 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], ajouter une seule fois
result = append(result, a[i])
i++
j++
}
}
// Ajouter les éléments restants
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
Ce code parcourt les deux listes, compare les éléments courants et ajoute le plus petit au résultat. Si les éléments sont égaux, il en ajoute un seul et avance les deux indices pour éviter les doublons. Au final, on obtient une liste triée avec des valeurs uniques.