"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo determinar de manera eficiente si una porción de enteros es un subconjunto de otro en Go usando un mapa?

¿Cómo puedo determinar de manera eficiente si una porción de enteros es un subconjunto de otro en Go usando un mapa?

Publicado el 2025-03-25
Navegar:355

How can I efficiently determine if one slice of integers is a subset of another in Go using a map?

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.

Último tutorial Más>

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