서브 세트 정의
는 후자의 모든 요소가 포함되어있는 경우 다른 부분의 하위 집합으로 간주됩니다. 예를 들어, {1, 2, 3}은 {1, 2, 3, 4}의 하위 집합이며 {1, 2, 2}는 {1, 2, 3, 4}
의 하위 집합이 아닙니다. 두 번째 슬라이스에서 맵을 구성하고 각 요소는 값으로 계산됩니다. 그 후, 첫 번째 슬라이스를 통해 반복하고지도에서 각 요소의 존재를 확인합니다. 모든 요소가 충분한 복제물로 발견되면 첫 번째 슬라이스는 서브 세트로 간주됩니다.
샘플 코드
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
true
False true
false
결론
이 맵 기반 솔루션은 하나의 정수 슬라이스가 다른 정수 슬라이스의 하위 집합인지를 효율적으로 결정하여 잠재적 중복 값을 처리합니다. 이 일반적인 문제를 해결하기위한 최적화 된 접근법을 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3