Heim >Backend-Entwicklung >Golang >Wie kann ich in Go mithilfe einer Karte effizient feststellen, ob ein Ganzzahlsegment eine Teilmenge eines anderen ist?
Teilmengenprüfung mit Ganzzahlscheiben in Go mithilfe von Map
Um festzustellen, ob eine Ganzzahlscheibe eine Teilmenge einer anderen ist, ist eine effiziente, mehr als einfache Lösung erforderlich Iteration. In diesem Artikel wird eine Lösung vorgestellt, die eine Karte verwendet, um die Prüfung zu optimieren.
Teilmengendefinition
Ein Slice wird als Teilmenge eines anderen betrachtet, wenn es alle Elemente des Slice enthält Letzteres, unter möglicher Einbeziehung von Duplikaten. Beispielsweise ist {1, 2, 3} eine Teilmenge von {1, 2, 3, 4}, während {1, 2, 2} keine Teilmenge von {1, 2, 3, 4} ist.
Kartenbasierte Implementierung
Die bereitgestellte Lösung verwendet eine Karte, um effizient zu bestimmen, ob ein Slice eine Teilmenge ist. Es erstellt eine Karte aus dem zweiten Slice, wobei die Anzahl jedes Elements der Wert ist. Anschließend wird das erste Segment durchlaufen und das Vorhandensein jedes Elements in der Karte überprüft. Wenn alle Elemente mit ausreichend Duplikaten gefunden werden, gilt das erste Slice als Teilmenge.
Beispielcode
<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>
Ausgabe
true false
Fazit
Diese kartenbasierte Lösung bestimmt effizient, ob ein ganzzahliger Slice eine Teilmenge eines anderen ist, und verarbeitet mögliche doppelte Werte. Es bietet einen optimierten Ansatz zur Lösung dieses häufigen Problems in Go.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go mithilfe einer Karte effizient feststellen, ob ein Ganzzahlsegment eine Teilmenge eines anderen ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!