...

/

Subset Sum—Dynamic Programming

Subset Sum—Dynamic Programming

Discover the different techniques used to solve the subset sum problem efficiently.

Dynamic programming algorithm for subset sum problem

Recall that the subset sum problem asks whether any subset of a given array X[1..n]X [1 .. n] of positive integers sums to a given integer TT. In a previous lesson, we developed a recursive subset sum algorithm that can be reformulated as follows. Fix the original input array X[1..n]X [1 .. n] and define the boolean function SS(i,t)=TrueSS(i, t) = True if and only if some subset of X[i..n]X [i .. n] sums to t.t.

We need to compute SS(1,T)SS(1, T). This function satisfies the following recurrence:

SS(i,t)={Trueif t=0Falseif t<0 or i>nSS(i+1,t)  SS(i+1,tX[i])otherwiseSS(i,t)=\begin{cases} & True \hspace{4.72cm} if\space t=0 \\ & False \hspace{4.6cm} if\space t<0\space or\space i>n\\ & SS(i+1,t)\space \vee \space SS(i+1,t-X[i])\hspace{0.4cm} \text{otherwise} \end{cases} ...

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy