"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso determinar com eficiência se uma fatia de números inteiros é um subconjunto de outro em Go usando um mapa?

Como posso determinar com eficiência se uma fatia de números inteiros é um subconjunto de outro em Go usando um mapa?

Postado em 2025-03-25
Navegar:158

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

Verifique o subconjunto com as fatias inteiras em Go usando o map

determinar se uma fatia de números inteiros é um subconjunto de outro requer uma solução eficiente além da iteração simples. Este artigo apresenta uma solução que utiliza um mapa para otimizar a verificação. Por exemplo, {1, 2, 3} é um subconjunto de {1, 2, 3, 4}, enquanto {1, 2, 2} não é um subconjunto de {1, 2, 3, 4}. Ele constrói um mapa a partir da segunda fatia, com a contagem de cada elemento como o valor. Posteriormente, itera pela primeira fatia e verifica a presença de cada elemento no mapa. Se todos os elementos forem encontrados com duplicatas suficientes, a primeira fatia será considerada um subconjunto. // subconjunta retorna true se a primeira matriz estiver completamente // contido na segunda matriz. Deve haver pelo menos // o mesmo número de valores duplicados em segundo // estão em primeiro lugar. subconjunto func (primeiro, segundo [] int) bool { set: = make (map [int] int) para _, valor: = range segundo { Definir [valor] } para _, valor: = intervalo primeiro { Se contagem, ok: = set [value]; !OK { retornar falso } else se contar

output

true false

conclusão

Esta solução baseada em mapa determina com eficiência se uma fatia inteira é um subconjunto de outro, lidando com potenciais valores duplicados. Ele fornece uma abordagem otimizada para resolver esse problema comum em go.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3