我目前正在使用C#创建一个程序,该程序会查找两组数字中可能的最小数量,您可以根据需要重复这些数字。
例如,我有两组{ 10, 13, 18 }
和{ 12, 16, 22 }
。我可以得到的最低金额是 28 :(10 + 18)
和(12 + 16)
。
另一个例子是{5, 7, 9}
和{1, 2, 3}
。最低可能总和为 5 :(5)
和(1+1+1+1+1)
或(1+2+2)
或(2+3)
,依此类推。
关于我可以从哪里开始的任何建议?我实际上每套使用6个数字,数字是数百/千万。
答案 0 :(得分:0)
保持两组,从输入集初始化,并按增加的数字排序(例如使用基于树的集合结构)。现在比较两组中的第一个(即最小)元素。从集合中删除的较小的一个,将相应输入集中的所有元素添加到该值,然后插入结果。当两个集合具有相同的最小元素时,您就完成了,并且该元素是您最不常见的相等总和。