Vérification de sous-ensemble avec des tranches entières dans Go à l'aide de Map
Déterminer si une tranche d'entiers est un sous-ensemble d'une autre nécessite une solution efficace au-delà du simple itération. Cet article présente une solution qui utilise une carte pour optimiser la vérification.
Définition du sous-ensemble
Une tranche est considérée comme un sous-ensemble d'une autre si elle contient tous les éléments de la ce dernier, avec l'inclusion éventuelle de doublons. Par exemple, {1, 2, 3} est un sous-ensemble de {1, 2, 3, 4}, tandis que {1, 2, 2} n'est pas un sous-ensemble de {1, 2, 3, 4}.
Implémentation basée sur une carte
La solution fournie utilise une carte pour déterminer efficacement si une tranche est un sous-ensemble. Il construit une carte à partir de la deuxième tranche, avec le nombre de chaque élément comme valeur. Par la suite, il parcourt la première tranche et vérifie la présence de chaque élément dans la carte. Si tous les éléments sont trouvés avec suffisamment de doublons, la première tranche est considérée comme un sous-ensemble.
Exemple de code
<code class="go">import "fmt" // subset returns true if the first array is completely // contained in the second array. There must be at least // the same number of duplicate values in second as there // are in first. func subset(first, second []int) bool { set := make(map[int]int) for _, value := range second { set[value]++ } for _, value := range first { if count, ok := set[value]; !ok { return false } else if count < 1 { return false } else { set[value] = count - 1 } } return true } func main() { fmt.Println(subset([]int{1, 2, 3}, []int{1, 2, 3, 4})) fmt.Println(subset([]int{1, 2, 2}, []int{1, 2, 3, 4})) }</code>
Sortie
true false
Conclusion
Cette solution basée sur une carte détermine efficacement si une tranche entière est un sous-ensemble d'une autre, en gérant les valeurs en double potentielles. Il fournit une approche optimisée pour résoudre ce problème courant dans Go.
Ce 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!