Ger*_*ica 6 javascript algorithm
给定一个较大的正整数“权重”数组(例如[ 2145, 8371, 125, 10565, ... ]
)和一个正整数“权重限制”例如15000,我要使用以下条件将权重划分为一个或多个较小的数组:
我怀疑这个问题的复杂程度很高。作为答案,我感兴趣:
当前的非最佳方法:(基本贪婪算法; JavaScript)
function minimizePartitions(weights, weightLimit) {
let currentPartition = [];
let currentSum = 0;
let partitions = [ currentPartition ];
for (let weight of weights) {
if (currentSum + weight > weightLimit) {
currentPartition = [];
currentSum = 0;
partitions.push(currentPartition);
}
currentPartition.push(weight);
currentSum += weight;
}
return partitions;
}
let weights = [3242, 987, 1222, 7299, 400, 10542, 10678, 513, 3977];
console.log(minimizePartitions(weights, 15000));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
148 次 |
最近记录: |