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.