求这道算法题的解法,想了好久都搞不定

bingfenghzy 2016-12-27 01:53:06
求这道算法题的解法:

有1到4500个数,不均匀分布在30000个组中,每个组的数据个数不定,组内数据没有重复,但组与组之间数据会有重复。

现在需要选出40个组,让他们的数据组合(去掉重复数据)后,在这4500个数中,出现最多。

求教这个算法应该如何写? 因为数据比较大,所以多次嵌套循环的方法行不通。

例如:1,2,3,4,5,6,7,8,9,10 这10个数,

现在不均匀分布在5个组:(1,3,5),(3,8),(1,7),(5,3),(9).
现在选出2个组,让这2个组的数据,在这10个数中出现最多。

则可以选出这2个组为:1. (1,3,5)和(3,8) 出现的为:1,3,5,8

2. (1,3,5)和(1,7) 出现的为:1,3,5,7

3. (1,3,5)和(9) 出现的为:1,3,5,9

4. (3,8)和(1,7) 出现的为:1,3,7,8

5. (1,7)和(5,3) 出现的为:1,3,5,7
...全文
549 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
欢乐的小猪 2017-06-14
  • 打赏
  • 举报
回复
引用 8 楼 leeky 的回复:
想了一下,似乎得到了解法: 问题的关键在于一个“筛” 这个题目的输入可以看成一个二维数组,或别的什么。 直观的,可以看成30000个桶, 第一步求出每个桶的元素个数; 选择一个元素最多的桶(选择可能很多),用此桶的元素去“筛”其余的桶(其它桶有相同元素则去掉,元素个数减1); 反复以上操作40次,得到一个解。
同意。 比方LZ的例子中。列向量 x1=(1,0,1,0,1,0,0,0,0,0) x2=(0,0,1,0,0,0,0,1,0,0) x3=(1,0,0,0,0,0,1,0,0,0) x4=(0,0,1,0,1,0,0,0,0,0) x5=(0,0,0,0,0,0,0,0,1,0) 第一步找到1的个数最多的向量,这里是x1。然后“筛”完之后,其他向量变为 x2=(0,0,0,0,0,0,0,1,0,0) x3=(0,0,0,0,0,0,1,0,0,0) x4=(0,0,0,0,0,0,0,0,0,0) x5=(0,0,0,0,0,0,0,0,1,0) 重复第一步找到1的个数最多的向量,这里是x2,x3,x5. 神似Dijkstra算法——求单点最短路径
leeky 2017-06-13
  • 打赏
  • 举报
回复
我上面的回复应当有漏洞,但可以参考这个思路。
leeky 2017-06-12
  • 打赏
  • 举报
回复
想了一下,似乎得到了解法: 问题的关键在于一个“筛” 这个题目的输入可以看成一个二维数组,或别的什么。 直观的,可以看成30000个桶, 第一步求出每个桶的元素个数; 选择一个元素最多的桶(选择可能很多),用此桶的元素去“筛”其余的桶(其它桶有相同元素则去掉,元素个数减1); 反复以上操作40次,得到一个解。
Turing_0 2017-02-10
  • 打赏
  • 举报
回复
最小覆盖集 加限制
dceacho 2017-01-19
  • 打赏
  • 举报
回复
感觉应该先按组里数据的多少进行排序 既然要找不重复的数最大,那当然单组的数要多
angel6709 2017-01-13
  • 打赏
  • 举报
回复
没有感受到该算法的意义。。
bingfenghzy 2017-01-03
  • 打赏
  • 举报
回复
no body???
bingfenghzy 2016-12-28
  • 打赏
  • 举报
回复
我自己来顶顶
bingfenghzy 2016-12-27
  • 打赏
  • 举报
回复
英文的。。 不好找啊
引用 1 楼 kernelkoder 的回复:
你可以看看这个算法网 www.geeksforgeeks.org 里面可能有类似的题目
kernelkoder 2016-12-27
  • 打赏
  • 举报
回复
你可以看看这个算法网 www.geeksforgeeks.org 里面可能有类似的题目

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧