Sobes.tech
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.