Semak Subset dengan Kepingan Integer dalam Go menggunakan Peta
Menentukan sama ada satu keping integer ialah subset daripada yang lain memerlukan penyelesaian yang cekap di luar yang mudah lelaran. Artikel ini memperkenalkan penyelesaian yang menggunakan peta untuk mengoptimumkan semakan.
Definisi Subset
Sekeping dianggap sebagai subset yang lain jika ia mengandungi semua elemen yang terakhir, dengan kemungkinan kemasukan pendua. Sebagai contoh, {1, 2, 3} ialah subset {1, 2, 3, 4}, manakala {1, 2, 2} bukan subset {1, 2, 3, 4}.
Pelaksanaan Berasaskan Peta
Penyelesaian yang disediakan menggunakan peta untuk menentukan dengan cekap sama ada hirisan ialah subset. Ia membina peta daripada kepingan kedua, dengan kiraan setiap elemen sebagai nilai. Selepas itu, ia berulang melalui kepingan pertama dan mengesahkan kehadiran setiap elemen dalam peta. Jika semua elemen ditemui dengan pendua yang mencukupi, kepingan pertama dianggap sebagai subset.
Kod Contoh
<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>
Output
true false
Kesimpulan
Penyelesaian berasaskan peta ini dengan cekap menentukan sama ada satu hirisan integer ialah subset daripada yang lain, mengendalikan potensi nilai pendua. Ia menyediakan pendekatan yang dioptimumkan untuk menyelesaikan masalah biasa ini dalam Go.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menentukan dengan cekap sama ada satu keping integer ialah subset yang lain dalam Go menggunakan peta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!