首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在数组中查找重叠数据

在数组中查找重叠数据
EN

Stack Overflow用户
提问于 2014-12-02 20:01:05
回答 2查看 283关注 0票数 10

我们正在编写一个C#应用程序,它将帮助删除不必要的数据中继器。只有在接收到的所有数据被其他中继器接收的情况下,才能删除中继器。作为第一步,我们需要的是下面的解释:

例如,我收集了int数组。

a. {1、2、3、4、5} b. {2、4、6、7} c. {1、3、5、8、11、100}

可能是数千个这样的数组。我需要找到可以删除的数组。只有在所有数字都包含在其他数组中时,才能删除数组。在上面的示例中,可以删除数组a,因为它的数字2和4位于数组b中,数字1、3、5位于数组c中。

做这样的手术最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-02 20:10:58

这是而不是的优化解决方案,只剩下最少的数组。

为数组的成员制作丰富字典。例如:

代码语言:javascript
运行
复制
1 => 2
2 => 2
3 => 2
4 => 2
5 => 2
6 => 1
7 => 1
...

检查每个数组,如果所有成员的丰度大于1,则删除数组并减少字典中每个数字的计数。

票数 4
EN

Stack Overflow用户

发布于 2014-12-02 20:36:12

获得剩余数组的最小数量(相对于不能删除更多数组的数组子集)是NP硬集合覆盖问题。然而,即使有数千个数组,如果将混合整数程序求解器应用到链接Wikipedia文章中的公式中,也很有可能找到最佳解决方案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27257896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档