Skip to content

Instantly share code, notes, and snippets.

@nerohoop
Created July 23, 2017 06:59
Show Gist options
  • Save nerohoop/5410fb6410baef58d53776f74cb38a94 to your computer and use it in GitHub Desktop.
Save nerohoop/5410fb6410baef58d53776f74cb38a94 to your computer and use it in GitHub Desktop.
// We need n+1 rows as the table is consturcted in bottom up manner using
// the base case 0 value case (n = 0)
int table[n+1][m];
// Fill the enteries for 0 value case (n = 0)
for (i=0; i<m; i++)
table[0][i] = 1;
// Fill rest of the table enteries in bottom up manner
for (i = 1; i < n+1; i++)
{
for (j = 0; j < m; j++)
{
// Count of solutions including S[j]
x = (i-S[j] >= 0)? table[i - S[j]][j]: 0;
// Count of solutions excluding S[j]
y = (j >= 1)? table[i][j-1]: 0;
// total count
table[i][j] = x + y;
}
}
return table[n][m-1];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment