Middle
Görev: Benzersiz değerlere sahip iki sıralı dilimi tek bir sıralı dilim halinde birleştirmek
sobes.tech yapay zeka
AI'dan gelen yanıt
İki sıralanmış ve benzersiz değerler içeren listeleri, sıralı ve benzersiz değerler içeren tek bir listeye birleştirmek için, birleştirme aşamasına benzer bir algoritma kullanılabilir.
Go dilinde örnek:
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], sadece bir kez ekle
result = append(result, a[i])
i++
j++
}
}
// Kalan elemanları ekle
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
Bu kod, her iki listeyi de dolaşır, mevcut elemanları karşılaştırır ve en küçüğü sonucu ekler. Elemanlar eşitse, sadece birini ekler ve tekrarları önlemek için her iki indeksi de artırır. Sonuç olarak, benzersiz değerlerle sıralı bir liste elde edilir.