我正在研究需要根據各種標準匹配兩組數據的應用程序,其中包括每組中的任意數量項目的總和。我已經將問題歸結爲以下陳述:給定兩組數字,找出總和相等的最小集合
給定一組項目和事務,找到總和等於最小事務集合總和的最小項目集合。 (我忽略了這篇文章的一些複雜性,但現在我只關心總量匹配,而不是日期,描述,清除差異等)。
或者,數學上:給定兩組數字,從總和相等的每一箇中找出最小的一組。
我碰到過的其他類似的SO問題假設你知道提前總結的數量,或者知道每一組的數量。
這裏是一個測試,(我認爲)說明了我要去的。
[TestMethod]
public void StackOverflowTest()
{
var seta = new[]{10, 20, 30, 40, 50};
var setb = new[]{ 45, 45, 100, 200 };
var result = Magic(seta, setb);
Assert.AreEqual(new[]{40,50},result.SetA);
Assert.AreEqual(new[] { 45, 45 }, result.SetB);
}
class MagicResult
{
public int[] SetA { get; set; }
public int[] SetB { get; set; }
}
private MagicResult Magic(int[] seta, int[] setb)
{
throw new NotImplementedException();
}
我正在尋找一個優雅的解決方案,這將使這一關,但會採取任何僞代碼或建議,讓我有;)
+1包括一個測試方法:D –
如果有多個符合這個標準的套件,你會怎麼做?另外,你是否想要最小的數目和? –
最後一個:) - 一組1是否可以接受? –