«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно определить, является ли один кусок целых чисел подмножеством другой в Go, используя карту?

Как я могу эффективно определить, является ли один кусок целых чисел подмножеством другой в Go, используя карту?

Опубликовано в 2025-03-25
Просматривать:669

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

Подгрупп Проверка с помощью целочисленных срезов в Go с помощью map

определение, является ли один срез цетких целых. В этой статье представлено решение, которое использует карту для оптимизации проверки.

определение подмножения

Slice считается подмножеством другого, если он содержит все элементы последнего, с возможным включением дублирования. For instance, {1, 2, 3} is a subset of {1, 2, 3, 4}, while {1, 2, 2} is not a subset of {1, 2, 3, 4}.

Map-Based Implementation

The provided solution employs a map to efficiently determine if a slice is a subset. Он строит карту со второго среза, причем счет каждого элемента является значением. Впоследствии он итерации проходит через первый срез и проверяет наличие каждого элемента на карте. Если все элементы найдены с достаточными дубликатами, первый срез считается подмножеством. // подмножество возвращает true, если первый массив полностью // содержится во втором массиве. Должно быть хотя бы // такое же количество дублирующих значений на втором, что и там // в первую очередь. Func Submet (First, Second [] int) bool { SET: = MAKE (MAP [int] int) Для _, значение: = диапазон второй { установить [значение] } для _, значение: = диапазон первого { Если счет, OK: = SET [значение]; !хорошо { вернуть ложь } else, если count

output

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  

Заключение

это решение на основе карты эффективно определяет, является ли один целый ряд срезом другим, обработка потенциальных дубликатов. Он обеспечивает оптимизированный подход к решению этой общей проблемы в Go.
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3