Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan persilangan tatasusunan di Golang
Terdapat dua kaedah biasa untuk mencari persilangan tatasusunan Golang: menggunakan fungsi tambah terbina dalam, gelung untuk menentukan sama ada elemen itu berada dalam tatasusunan lain dan superposing untuk mencari persimpangan. Gunakan peta untuk mengecualikan elemen pendua dan dapatkan persimpangan dengan cekap dengan mencipta jadual pemetaan.
Kaedah pelaksanaan persilangan tatasusunan di Golang
Di Golang, terdapat beberapa kaedah untuk menyelesaikan persilangan tatasusunan. Artikel ini akan memperkenalkan dua kaedah yang paling biasa: menggunakan fungsi append
terbina dalam dan menggunakan 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
tambah
terbina dalam 🎜🎜🎜Fungsi tambah
boleh menambah elemen pada tatasusunan sedia ada atau mencipta tatasusunan baharu. Kita boleh menggunakan ciri ini untuk mencari persimpangan: 🎜intersectionBA := intersection(b, a) fmt.Println(intersectionBA) // [3 4 5 6]🎜🎜Kaedah 2: Gunakan
map
🎜🎜🎜Cara lain untuk mencari persimpangan ialah menggunakan map
. Berbanding dengan fungsi append
, menggunakan map
adalah lebih cekap kerana ia boleh menghapuskan elemen pendua dengan kerumitan masa O(n): 🎜rrreee🎜🎜Kes praktikal🎜🎜 🎜Andaikan kita mempunyai dua tatasusunan berikut: 🎜rrreee🎜Gunakan fungsi Atas ialah kandungan terperinci Bagaimana untuk melaksanakan persilangan tatasusunan di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!