Re: lists/unions/intersections:
- From: Chris <spam_me_not@xxxxxxxxxx>
- Date: Tue, 11 Jul 2006 21:55:36 -0500
oleg wrote:
Hello,
Could you please help me to solve the following problem.
Rules:
1) There "N" number of lists. Each list has W(N) number of elements
2) Each list can be fully independent of other lists or it can have
intersection with one or more other lists or it can be identical to one
or more other lists.
3) I need to combine these lists into the new "M" number of lists
of size that is less then K. The goal is to produce the smallest
possible number of lists
4) Size K is greater then any one size of original lists
5) New lists must always include all elements found in original lists
minus the duplicates.
Here is an example:
Combine seven lists below into new lists. New lists must contain less
then 10 elements
list_1: { a, b, c, d ,e }
list_2: { c, d, a, g }
list_3: { a, g, s, h, y }
list_4: { t, r, n, l, o }
list_5: { c, f, g, s, w, y }
list_6: { n, y, r, s }
list_7: { k, b, s }
list_1+list_2: { a, b, c, d, e, g }
list_3 + list_5; { a, g, s, h, y, c, f, w, y }
list_4 + list_6 + list_7: { t, r, n, l, o, y, s, k, b }
Thank you!
Oleg
Can you use an external data structure, like a hashmap?
Allocate an output array of size K
For each element in each list, attempt to insert it into a hashmap. If it's not already in the map, add it to your output array. If it is,
then ignore it.
When you run out of room in the output array, allocate
another one and continue.
This is not particularly memory efficient, but it is fast and simple.
.
- Follow-Ups:
- Re: lists/unions/intersections:
- From: oleg
- Re: lists/unions/intersections:
- References:
- lists/unions/intersections:
- From: oleg
- lists/unions/intersections:
- Prev by Date: lists/unions/intersections:
- Next by Date: Re: lists/unions/intersections:
- Previous by thread: lists/unions/intersections:
- Next by thread: Re: lists/unions/intersections:
- Index(es):
Relevant Pages
|