From 43e97b9dfec320c35230bea19fcebcb64589d31c Mon Sep 17 00:00:00 2001 From: Purnima Pal Date: Sun, 10 Oct 2021 10:14:03 +0530 Subject: [PATCH] added subset sum problem --- .../DynamicProgramming/C++/SubsetSum.cpp | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Algorithms/DynamicProgramming/C++/SubsetSum.cpp diff --git a/Algorithms/DynamicProgramming/C++/SubsetSum.cpp b/Algorithms/DynamicProgramming/C++/SubsetSum.cpp new file mode 100644 index 0000000..d24e9be --- /dev/null +++ b/Algorithms/DynamicProgramming/C++/SubsetSum.cpp @@ -0,0 +1,40 @@ +#include +using namespace std; + + bool isSubsetSum(int N, int arr[], int sum){ + int dp[N+1][sum+1]; + + for(int i = 0 ; i <= N ; i++){ + for(int j = 0 ; j <= sum ; j++){ + if(i==0){ + dp[i][j]= false; + } + if(j==0){ + dp[i][j]= true; + } + + if(i>0 and j >0){ + + if(arr[i-1]<=j){ + dp[i][j]= dp[i-1][j-arr[i-1]] or dp[i-1][j]; + }else{ + dp[i][j]=dp[i-1][j]; + } + } + } + } + + return dp[N][sum]; + } + + int main() +{ + int set[] = { 3, 34, 4, 12, 5, 2 }; + int sum = 9; + int n = sizeof(set) / sizeof(set[0]); + if (isSubsetSum( n,set, sum) == true) + cout <<"Found a subset with given sum"; + else + cout <<"No subset with given sum"; + return 0; +} \ No newline at end of file