JSFiddle - React, Tailwind, and code Playground
by henser
JavaScript
var sets = (function(a, k) {
var max = [],
result,
mask,
i,
total = Math.pow(2, a.length);
for (mask = 1; mask < total; mask++) {
result = [];
i = a.length - 1;
var sum = 0;
do {
if ((mask & (1 << i)) !== 0) {
result.push(a[i]);
sum = sum + a[i];
}
} while (i--);
if(sum <= k){
max = result;
}
}
return max.length;
});
console.log(sets([3,1,2,1], 4));