Verifique con rodajas enteras en ir usando MAP
determinando si un porte de enteros es un subconjunto de otro requiere una solución eficiente más allá de la simple iteración. Este artículo presenta una solución que utiliza un mapa para optimizar el cheque.
definición de subconjunto
un porte se considera un subconjunto de otro si contiene todos los elementos de este último, con la posible inclusión de duplicados. Por ejemplo, {1, 2, 3} es un subconjunto de {1, 2, 3, 4}, mientras que {1, 2, 2} no es un subconjunto de {1, 2, 3, 4}.
basado en mapas
[&] [&] La solución proporcionada emplea un mapa para determinar eficiente un mapa. Construye un mapa de la segunda porción, con el recuento de cada elemento como el valor. Posteriormente, itera a través de la primera porción y verifica la presencia de cada elemento en el mapa. Si todos los elementos se encuentran con suficientes duplicados, el primer corte se considera un subconjunto.
muestra de código
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 output
verdadero
falso true
false
conclusión
Esta solución basada en mapa determina eficientemente si una porción entera es un subconjunto de otro, manejo de potenciales valores duplicados. Proporciona un enfoque optimizado para resolver este problema común en GO.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3