嗨,这是一个简单的首次适合递减装箱C#实现。 静态列表 > BinPack(IEnumerable source,double packSize)。
{。
var groups = source。
,GroupBy(x => x)。
,order by descending(g = > g . Key)。
,Select(g => g.ToList())。
,to list();。
var result = new List >();。
while(组,Count > 0)。
{。
var List = new List ();。
var I = 0;。
while (i 0)。
{。
如果(列表,Sum() + groups[i][0] 。
{。
列表,添加(组[I][0]);。
组[i],remove at(0);。
if (groups[i].Count == 0)。
{。
组,remove at(I);。
}。
}。
否则。
{。
i++;。
}。
}。
结果,添加(列表);。
}。
返回结果;。
}。