K order knapsack ---runtime error
hello @guptarahul3100
ur dp state is wrong.
suppose we have s1and s2 as string and k.
i=0 (for string s1)
j=0(for string s2)
if s1[i]==s2[j]
then ans=1+solvefor(i+1,j+1,k)
if(s1[i]!=s2[j] (we have two options)
- ans=solvefor(i+1,j,k) or solvefor(i,j+1,k) take maximum among them // we did similar thing in lcs
- if k>0 then i can use 1 k to make them equal and lcs in that case will be
ans=1+solvefor(i+1,j+1,k-1) // k-1 because i have used 1 k to make them equal
among those two options whichever will give maximum answe we will consider that.
Define a 3D matrix dp[][][], where dp[i][j][k] defines the Longest Common Subsequence for the first i numbers of first array, first j number of second array when we are allowed to change at max k number in the first array.
Therefore, recursion will look like
I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.
On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.
