숫자 목록이 N
입니다. 각 목록에서 k
숫자를 선택하고이 방법으로 형성 될 수있는 가장 큰 세트 (중복 없음)를 반환하십시오. 같은 크기의 세트가 여러 개 있으면 그 중 하나를 반환 할 수 있습니다. 예를 들어중복없이 각 카테고리에서 k 개의 번호를 선택하고 선택 항목을 최대화하십시오.
는 N = 3 인 경우, k는,
l1: [1, 2, 3]
l2: [2, 7]
l3: [3]
그때 최적의 결과 [1, 3, 2, 7]
= 2. l1
에서 [1, 3]
을 선택하고 l2
에서 [2, 7]
을 선택하고 l3
에서 [3]
을 선택하십시오. (거기에 다른 선택하지만 결과 집합의 원소의 개수는 이것보다, 그래서하지만이 사람은 최고의 선택입니다.)
일부 표시등을 켜십시오. 미리 감사드립니다!
아마도이 문제를 잘 이해하지 못 하겠지만 모든 목록의 모든 요소를 세트에 추가하고 선형 시간으로 최대한의 결과를 얻을 수있는 것 같습니다. (그러면 무작위로 결과 세트에서'k' 번호를 고를 수 있습니다.) – alfasin
@alfasin 그러면'k' 숫자가 선택됩니다. l1 = [1,2], l2 = [3,4,5,6,7], k = 2이면 [1,2,3,4,5,6,7]에서 무작위로 4를 선택하면 [4,5,6,7]은 l1에 1,2를 포함하지 않는다. 따라서이 경우 최종 결과는 l1의 [1, 2]를 포함해야합니다. 그것은 의미가 있습니까? – zsong
그러나 당신이'최대'해결책을 찾고 있다면 당신은 무작위로 아무 것도 할 수 없습니다 ... – alfasin