我目前正在用 C# 创建一个程序,该程序将查找两组数字的尽可能低的相等总和,您可以在其中根据需要多次重复这些数字。
比如我有这两套{ 10, 13, 18 }
and { 12, 16, 22 }
。我能得到的最低金额是28: (10 + 18)
and (12 + 16)
.
另一个例子是{5, 7, 9}
and {1, 2, 3}
。可能的最低总和是5: (5)
and (1+1+1+1+1)
or (1+2+2)
or (2+3)
等等。
关于我可以从哪里开始有什么建议吗?实际上,我将每组使用 6 个数字,并且数字为数百/数千。
维护两个集合,从输入集合初始化,并按数字递增排序(例如使用基于树的集合结构)。现在比较两个集合中的第一个(即最小)元素。从其集合中删除较小的元素,将相应输入集中的所有元素添加到该值,然后插入结果。当两个集合具有相同的最小元素时,您就完成了,该元素就是您的最小公等和。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)