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