Middle
Tapşırıq: iki unikal dəyərə malik sıralanmış iki slice-i birləşdirib, unikal dəyərlərlə sıralanmış bir slice yaratmaq
sobes.tech Süni İntellekt
AI-dan cavab
İki sıralanmış və unikal dəyərlərdən ibarət siyahıları, unikal dəyərlərlə sıralanmış tək bir siyahıya birləşdirmək üçün, birləşmə algoritmindən istifadə etmək mümkündür, bu, birləşmə mərhələsinə bənzəyir.
Go dilində nümunə:
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], yalnız bir dəfə əlavə et
result = append(result, a[i])
i++
j++
}
}
// Qalan elementləri əlavə et
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
Bu kod hər iki siyahını keçir, cari elementləri müqayisə edir və ən kiçiyini nəticəyə əlavə edir. Əgər elementlər bərabərdirsə, yalnız birini əlavə edir və duplikatların qarşısını almaq üçün hər iki indeksi artırır. Nəticədə, unikal dəyərlərlə sıralanmış siyahı alınır.