TheLazyBoy's blog

By TheLazyBoy, history, 20 months ago, In English

I am not able to figure out what is wrong with my top down knapsack dp approach, its failing testcases, need help. A= 5, 9, 1, 9, 7 and B= 3, 1, 3, 3, 2 and C=9 expected ans is 30 and the code is giving 26

Here is my code:

 int fin(int i,int wt,int curprofit,vector<int>&A,vector<int>&B,int C,int n,vector<vector<int>>&dp)
    {
        if(i==n)
            return curprofit;
        if(dp[i][wt]!=-1)
        return dp[i][wt];
        int ret=0;
        ret=max(ret,fin(i+1,wt,curprofit,A,B,C,n,dp));
        if(wt+B[i]<=C)
        {
            ret=max(ret,fin(i+1,wt+B[i],curprofit+A[i],A,B,C,n,dp));
        }
        return dp[i][wt]= ret;
    }
    int Solution::solve(vector<int> &A, vector<int> &B, int C) {
        int n=A.size();
        vector<vector<int>>dp(n+1,vector<int>(C+1,-1));
        return fin(0,0,0,A,B,C,n,dp);
    }

Full text and comments »

  • Vote: I like it
  • 0
  • Vote: I do not like it

By TheLazyBoy, history, 20 months ago, In English

Hi , What should I do when I am unable to understand the solution of a problem from editorial?

Full text and comments »

  • Vote: I like it
  • +9
  • Vote: I do not like it