3180 Maximum Total Reward Using Operations I || How to 🤔 in Interview || Sort+Recursion+Memoization

Поділитися
Вставка
  • Опубліковано 21 гру 2024

КОМЕНТАРІ • 19

  • @MiteshTank1
    @MiteshTank1 6 місяців тому +1

    Amazing!! Nice Explanation

  • @reqzonegaming7157
    @reqzonegaming7157 6 місяців тому +1

    happy to see you after while.

  • @danusshkumar
    @danusshkumar 6 місяців тому +2

    Super explanation ❤❤

  • @sanasainath7758
    @sanasainath7758 6 місяців тому +1

    awesome explanation within minutes

  • @ShortDecoded1
    @ShortDecoded1 6 місяців тому +2

    not understood why you take dp[2001][4001] instead of dp[2001][4000001] i know it will give tle but sum can go upto that ...

    • @pradnyeshaglawe351
      @pradnyeshaglawe351 5 місяців тому

      He explained in the video, the max rewardValue is 2000 and it can be taken only if x is 1999. So, in worst case when x is 1999, we include rewardValue 2000. Which equals 2000+1999=3999

  • @bhupenderjaglanvlogs486
    @bhupenderjaglanvlogs486 6 місяців тому

    I had written the same code but mine is giving memory limit exced
    int solve(int n,int x,vector r,vector &dp,int i)
    {
    if(i == n)
    return 0;

    if(dp[i][x] != -1)
    return dp[i][x];

    int take = 0;

    if(r[i] > x)
    take = r[i] + solve(n,x+r[i],r,dp,i+1);

    int ntake = solve(n,x,r,dp,i+1);

    return dp[i][x] = max(take,ntake);



    }
    int maxTotalReward(vector& r) {
    sort(r.begin(),r.end());
    int ans = 0;
    int n = r.size();
    vector dp(2001,vector (4001,-1));
    ans = solve(n,0,r,dp,0);
    return ans;

    }

  • @ShortDecoded1
    @ShortDecoded1 6 місяців тому +1

    keep it up bhaiya

  • @RohitSingh-hc8yi
    @RohitSingh-hc8yi 6 місяців тому +1

    Nice explanation

  • @RitikGautam-c2p
    @RitikGautam-c2p 6 місяців тому +1

    Improve your dp explanation.