Max subarray length which sum not bigger than the main array length
by Génesis García Morilla
JavaScript
// Max subarray length which sum not bigger than the array (a) length
function maxLength(a) {
// All subarrays
let subarrays =
a.reduce((acc, e) => {
const subsets = acc.map(subset => [...subset, e]);
return acc.concat(subsets);
}, [[]]);
// Get the longest
let max_length = 0;
subarrays.forEach(sub => {
const sum = sub.reduce((acc, n) => acc += n, 0);
if (sum <= a.length && sub.length > max_length)
max_length = sub.length;
});
return max_length;
}
document.body.textContent = maxLength([1,2,3,4]);