Sobes.tech
Middle

Uzdevums: apvienot divus sakārtotus slices ar unikālām vērtībām vienā sakārtotā slice ar unikālām vērtībām

sobes.tech AI

Atbilde no AI

Lai apvienotu divus sakārtotus ar unikālām vērtībām sarakstus vienā sakārtotā ar unikālām vērtībām sarakstā, var izmantot apvienošanas algoritmu, kas līdzīgs apvienošanas posmam sakārtotībā.

Piemērs Go valodā:

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], pievieno tikai vienu reizi
            result = append(result, a[i])
            i++
            j++
        }
    }

    // Pievieno atlikušos elementus
    for i < len(a) {
        result = append(result, a[i])
        i++
    }
    for j < len(b) {
        result = append(result, b[j])
        j++
    }

    return result
}

Šis kods pārlūko abus sarakstus, salīdzina pašreizējos elementus un pievieno mazāko rezultātam. Ja elementi ir vienādi, pievieno tikai vienu un abiem indeksiem palielina, lai izvairītos no dublēšanās. Rezultātā iegūst sakārtotu sarakstu ar unikālām vērtībām.