subset sum dp problem code example

Example 1: two sum problem in c++

bool twosum(int A[], int N, int X) {
  	sort(A, A+N);
    int i = 0, j = N-1;
    while (i < j) {
        if (A[i] + A[j] == X) return true;
        else if (A[i] + A[j] > X) j--;
        else i++;
    }
    return false;
}

Example 2: subset sum problem using backtracking python

def SubsetSum(set, n, sum) :
   # Base Cases
   if (sum == 0) :
      return True
   if (n == 0 and sum != 0) :
      return False
   # ignore if last element is > sum
   if (set[n - 1] > sum) :
      return SubsetSum(set, n - 1, sum);
   # else,we check the sum
   # (1) including the last element
   # (2) excluding the last element
   return SubsetSum(set, n-1, sum) or SubsetSum(set, n-1, sumset[n-1])
# main
set = [2, 14, 6, 22, 4, 8]
sum = 10
n = len(set)
if (SubsetSum(set, n, sum) == True) :
   print("Found a subset with given sum")
else :
   print("No subset with given sum")

Tags:

Cpp Example