我有一系列服务器和一系列作业。
var servers = [
{
name: "Lan",
capacity: 5
},
{
name: "Stark",
capacity: 3
},
{
name: "Tar",
capacity: 3
}
];
var jobs = [
{
name: "Tye",
capacity: 2
},
{
name: "Arya",
capacity: 3
},
{
name: "Rob",
capacity: 3
}
];
我希望能够使用最少数量的服务器运行所有作业(作业只能在一台服务器上运行,不能在两台不同的服务器上运行)。服务器可以运行任意数量的作业,达到其容量。因此,在上面的情况下,具有容量5的服务器“Lan”可以运行具有容量(2 + 3)的作业“Tye”和“Arya”。 是否可以使用map / reduce来解决这个问题。结果应该是:
result = [
{
name: "Lan",
capacity: 5,
jobs: ["Tye", "Arya"]
},
{
name: "Stark",
capacity: 3,
jobs: ["Rob"]
},
{
name: "Tar",
capacity: 3,
jobs: []
}
]