Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan operasi persilangan tatasusunan di Golang

Bagaimana untuk melaksanakan operasi persilangan tatasusunan di Golang

WBOY
WBOYasal
2024-04-03 21:21:011063semak imbas

Operasi persimpangan tatasusunan di Golang boleh dilaksanakan melalui jadual cincang, isihan atau set. Menggunakan jadual cincang, simpan elemen tatasusunan pertama dalam jadual cincang dan kemudian ulangi tatasusunan kedua Jika elemen itu wujud dalam jadual cincang, ia tergolong dalam persimpangan. Menggunakan isihan, susun kedua-dua tatasusunan dan kemudian gunakan traversal penunjuk berganda untuk membandingkan elemen dan mencari padanan. Menggunakan set, tambahkan elemen tatasusunan pertama pada set, kemudian ulangi tatasusunan kedua, dan jika elemen itu tergolong dalam set, ia tergolong dalam persimpangan.

如何在 Golang 中实现数组的交集运算

Cara melaksanakan operasi persilangan tatasusunan di Golang

Operasi persilangan memperoleh elemen yang muncul serentak dalam dua set. Artikel ini akan memperkenalkan cara melaksanakan operasi persilangan tatasusunan di Golang dan menyediakan kes praktikal untuk menunjukkan langkah pelaksanaan khusus.

Kaedah

Tiada fungsi operasi persimpangan terbina dalam di Golang, jadi kami perlu melaksanakannya sendiri. Berikut ialah beberapa pelaksanaan biasa:

  • Gunakan jadual cincang: Simpan elemen tatasusunan pertama dalam jadual cincang, kemudian ulangi tatasusunan kedua, semak sama ada setiap elemen berada dalam jadual cincang. Jika ia wujud, ia tergolong dalam persimpangan.
  • Gunakan isihan: Isih kedua-dua tatasusunan, kemudian gunakan penuding berganda untuk mengulangi kedua-dua tatasusunan, membandingkan elemen dan mencari padanan.
  • Gunakan koleksi: Gunakan struktur data koleksi (seperti map atau set), tambahkan elemen tatasusunan pertama pada koleksi, dan kemudian ulangi tatasusunan kedua , menyemak sama ada setiap elemen tergolong dalam set. mapset),将第一个数组的元素添加到集合中,然后遍历第二个数组,检查每个元素是否属于集合。

实战案例:

假设我们有两个数组:arr1arr2

Kes praktikal:

Katakan kita mempunyai dua tatasusunan: arr1 dan arr2. Kita perlu mencari persimpangan mereka.

func intersection(arr1, arr2 []int) []int {
    // 使用哈希表方法
    hash := make(map[int]bool)
    for _, v := range arr1 {
        hash[v] = true
    }
    result := []int{}
    for _, v := range arr2 {
        if hash[v] {
            result = append(result, v)
        }
    }
    return result
}

func main() {
    arr1 := []int{1, 2, 3, 4, 5}
    arr2 := []int{3, 4, 5, 6, 7}
    fmt.Println(intersection(arr1, arr2)) // 输出:[3, 4, 5]
}

🎜Kesimpulan: 🎜🎜🎜Artikel ini memperkenalkan cara melaksanakan operasi persilangan tatasusunan dalam Golang, dan menyediakan kes praktikal menggunakan kaedah jadual cincang. Bergantung pada keadaan, kaedah pelaksanaan yang paling sesuai boleh dipilih. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan operasi persilangan tatasusunan di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn