Golang 配列の共通部分を見つけるには 2 つの一般的な方法があります。組み込みの append 関数を使用する方法、ループして要素が別の配列にあるかどうかを判断する方法、および重ね合わせて共通部分を見つける方法です。マップを使用して重複要素を除外し、マッピング テーブルを作成することで交差を効率的に取得します。
Golang の配列交差の実装方法
Golang では、配列の交差を解決する方法がいくつかあります。この記事では、組み込みの append
関数を使用する方法と map
を使用する 2 つの最も一般的な方法を紹介します。
方法 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
交差点を見つけるもう 1 つの方法は、# を使用することです。 # #地図。
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 }
実際のケース
次の 2 つの配列があるとします。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]Use
map 交差点を見つけます:
intersectionBA := intersection(b, a) fmt.Println(intersectionBA) // [3 4 5 6]
以上がGolang で配列の交差を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。