Let's begin with set 8,
16)If given a max weight as input find out max allocation from a given array of jewelry weights.
Example 1:
Input:
maxWeight=5
weightArray=[5,2,6]
output:
[{weight:5,qnt:1 }]
Example 2:
Input:
maxWeight=12
weightArray=[5,2,6]
output:
[{weight:5,qnt:2},{weight:2,qnt:1}]
Solution:
function findCombination(maxWeight,weightArray) {
var myArray = weightArray;
let finalArray = [];
for (let i = 0; i < myArray.length; i++) {
let effectiveWeight = myArray[i];
let remainder = maxWeight % effectiveWeight;
let quotient = Math.trunc(maxWeight / effectiveWeight);
if (quotient > 0) {
finalArray.push({ weight: myArray[i], qnt: quotient });
}
if (remainder == 0) {
break;
} else {
maxWeight = maxWeight - quotient * effectiveWeight;
}
}
return finalArray;
}
Logic:
Here we get quotient and remainder and put quotient and array element in finalArray if quotient>0.
If the remainder is 0 then that is a break condition else we reduce maxWeight by quotient * effectiveWeight.
I hope you like this article.
You may also like these articles:

Comments
Post a Comment