Start Typing !!! type the highlighted character. You can't scroll once you start typing.
filename

NumberOfSubsetEqualToGivenSum.js

/*

Given an array of non-negative integers and a value sum,

determine the total number of the subset with sum

equal to the given sum.

*/

/*

Given solution is O(n*sum) Time complexity and O(sum) Space complexity

*/

function NumberOfSubsetSum (array, sum) {

const dp = [] // create an dp array where dp[i] denote number of subset with sum equal to i

for (let i = 1; i <= sum; i++) {

dp[i] = 0

}

dp[0] = 1 // since sum equal to 0 is always possible with no element in subset

for (let i = 0; i < array.length; i++) {

for (let j = sum; j >= array[i]; j--) {

if (j - array[i] >= 0) {

dp[j] += dp[j - array[i]]

}

}

}

return dp[sum]

}

function main () {

const array = [1, 1, 2, 2, 3, 1, 1]

const sum = 4

const result = NumberOfSubsetSum(array, sum)

console.log(result)

}

main()