How to merge two sorted arrays without duplicates in Go

1 Answer

0 votes
package main

import (
	"fmt"
	"sort"
)

func merge(arr1, arr2 []int) []int {
	mergedSet := make(map[int]struct{})

	for _, v := range arr1 {
		mergedSet[v] = struct{}{}
	}
	for _, v := range arr2 {
		mergedSet[v] = struct{}{}
	}

	mergedArray := make([]int, 0, len(mergedSet))
	for k := range mergedSet {
		mergedArray = append(mergedArray, k)
	}

	return mergedArray
}

func main() {
	arr1 := []int{1, 2, 2, 3, 7, 7, 7, 8, 9}
	arr2 := []int{0, 0, 4, 4, 4, 5, 6, 7, 7, 8}

	mergedArray := merge(arr1, arr2)

	sort.Ints(mergedArray)

	fmt.Println(mergedArray)
}


/*
run:

[0 1 2 3 4 5 6 7 8 9]

*/

 



answered Oct 10, 2024 by avibootz

Related questions

2 answers 179 views
2 answers 132 views
1 answer 201 views
1 answer 147 views
1 answer 185 views
1 answer 209 views
1 answer 224 views
...