Middle
Aufgabe: Zwei sortierte Slices mit eindeutigen Werten zu einem sortierten Slice mit eindeutigen Werten zusammenführen
sobes.tech KI
Antwort von AI
Um eine sortierte Liste mit eindeutigen Werten aus zwei sortierten Listen mit eindeutigen Werten zu kombinieren, kann man einen Fusionsalgorithmus verwenden, ähnlich dem Fusionschritt beim Mergesort.
Beispiel in 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], nur einmal hinzufügen
result = append(result, a[i])
i++
j++
}
}
// Restliche Elemente hinzufügen
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
Dieser Code durchläuft beide Listen, vergleicht die aktuellen Elemente und fügt das kleinere zum Ergebnis hinzu. Wenn die Elemente gleich sind, fügt er nur eines hinzu und erhöht beide Indizes, um Duplikate zu vermeiden. Am Ende erhält man eine sortierte Liste mit eindeutigen Werten.