Middle
Маселе: эки уникалдуу маанилер менен сорттолгон эки sliceти бириктирип, бириктирилген сорттолгон slice түзүү
sobes.tech AI
AIден жооп
Бириккен жана уникалдуу маанилерге ээ эки сорттолгон тизмени бириктирүү үчүн, бириктирүү алгоритмин колдонсо болот, ал бириктирүү этапына окшош.
Go тилиндеги мисал:
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], бир жолу гана кошуңуз
result = append(result, a[i])
i++
j++
}
}
// Калган элементтерди кошуңуз
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
Бул код эки тизмени өтүп, учурдагы элементтерди салыштырып, кичүү элементти натыйкага кошот. Эгер элементтер бирдей болсо, бир гана кошуп, эки индекстин да алдыга жылышын камсыз кылат, бул дублёраларды алдын алат. Натыйжада, уникалдуу маанилер менен сорттолгон тизмени аласыз.