Middle
Task: merge two sorted slices with unique values into one sorted slice with unique values
sobes.tech AI
Answer from AI
To merge two sorted slices with unique values into one sorted slice with unique values, you can use a merging algorithm similar to the merge step in merge sort.
Example in 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], add once
result = append(result, a[i])
i++
j++
}
}
// Add remaining elements
for i < len(a) {
result = append(result, a[i])
i++
}
for j < len(b) {
result = append(result, b[j])
j++
}
return result
}
This code iterates through both slices, compares current elements, and adds the smaller one to the result. If elements are equal, it adds one and advances both indices to avoid duplicates. The result is a sorted slice with unique values.