Maison >développement back-end >Golang >Comment implémenter l'intersection de tableaux dans Golang
Il existe deux méthodes courantes pour trouver l'intersection des tableaux Golang : utiliser la fonction d'ajout intégrée, effectuer une boucle pour déterminer si l'élément se trouve dans un autre tableau et superposer pour trouver l'intersection. Utilisez map pour exclure les éléments en double et obtenir efficacement des intersections en créant une table de mappage.
Méthode d'implémentation de l'intersection de tableaux dans Golang
Dans Golang, il existe plusieurs méthodes pour résoudre l'intersection de tableaux. Cet article présentera les deux méthodes les plus courantes : utiliser la fonction intégrée append
et utiliser map
. append
函数和使用 map
。
方法 1:使用内置的 append
函数
append
函数可以将元素添加到现有数组中,也可以创建一个新数组。我们可以利用这个特性来求交集:
func intersection(a, b []int) []int { result := []int{} for _, v := range a { if containsInArray(b, v) { result = append(result, v) } } return result } func containsInArray(arr []int, elem int) bool { for _, v := range arr { if v == elem { return true } } return false }
方法 2:使用 map
另一种求交集的方法是使用 map
。与 append
函数相比,使用 map
的效率更高,因为它可以 O(n) 的时间复杂度排除重复元素:
func intersection(a, b []int) []int { m := make(map[int]bool) for _, v := range a { m[v] = true } result := []int{} for _, v := range b { if m[v] { result = append(result, v) } } return result }
实战案例
假设我们有以下两个数组:
a := []int{1, 2, 3, 4, 5, 6} b := []int{3, 4, 5, 6, 7, 8}
使用 append
函数求交集:
intersectionAB := intersection(a, b) fmt.Println(intersectionAB) // [3 4 5 6]
使用 map
append
🎜🎜🎜La fonction append
peut ajouter des éléments à un tableau existant ou créer un nouveau tableau. Nous pouvons utiliser cette fonctionnalité pour trouver l'intersection : 🎜intersectionBA := intersection(b, a) fmt.Println(intersectionBA) // [3 4 5 6]🎜🎜Méthode 2 : Utilisez
map
🎜🎜🎜Une autre façon de trouver l'intersection est d'utiliser map
. Par rapport à la fonction append
, l'utilisation de map
est plus efficace car elle peut éliminer les éléments en double avec une complexité temporelle O(n) : 🎜rrreee🎜🎜Cas pratique🎜🎜 🎜Supposons que nous avoir les deux tableaux suivants : 🎜rrreee🎜Utilisez la fonction append
pour trouver l'intersection : 🎜rrreee🎜Utilisez map
pour trouver l'intersection : 🎜rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!