Coin Change Problem | Dynamic Programming | Leetcode

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ม.ค. 2025

ความคิดเห็น • 104

  • @vishalvikram8637
    @vishalvikram8637 4 ปีที่แล้ว +49

    People only love to listen
    1 Roadmap for first year.
    2 Roadmap for last year.
    3 How to improve DSA.
    And bla bla bla....
    Main thing is that..
    Question se hoga gyan ki batoo se nhi.
    Keep dowing ur good work.
    My ranking has been improved much bcoz of u only

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว +5

      😅

    • @madhav3444
      @madhav3444 3 ปีที่แล้ว +4

      he just roasted the excuse makers

    • @buzzfeedRED
      @buzzfeedRED 3 ปีที่แล้ว

      @@techdose4u :at 9:11 , if we have NO Coin annd Amt > 0: Then we shoul return -1. Isn't it? why we return Infinity?

    • @dhruvpurwar6642
      @dhruvpurwar6642 3 ปีที่แล้ว +2

      @@buzzfeedRED since we are taking min at each point , it will give result -1 even for valid points.. That's why we take INT_MAX wherever we use min

    • @AYJ959
      @AYJ959 2 ปีที่แล้ว

      Yeah you are right buddy

  • @VikasSingh-yw3lp
    @VikasSingh-yw3lp 3 ปีที่แล้ว +5

    never have i seen this much to the point solution and explanation ever before!

  • @Cloud-577
    @Cloud-577 2 ปีที่แล้ว +4

    I was really scared to approach dp questions but you saved me with this playlist. Thank you!

  • @aakashgoswami2356
    @aakashgoswami2356 4 ปีที่แล้ว +19

    Legend is back again.....

  • @TejusNataraju
    @TejusNataraju 4 ปีที่แล้ว +24

    Excellent explanation and kudos to the efforts! Keep going TECHDOSE :)

  • @VsEdits59
    @VsEdits59 2 ปีที่แล้ว

    thanks a lot man !! i only search for techdose and striver for leetcode problems keep up the good work

  • @SurajYadav-bc5id
    @SurajYadav-bc5id 3 ปีที่แล้ว +13

    too much high quality content. Loved it 3🔥🔥🔥

  • @buzzfeedRED
    @buzzfeedRED 3 ปีที่แล้ว

    :at 9:11 , if we have NO Coin annd Amt > 0: Then we shoul return -1. Isn't it? why we return Infinity?

  • @akshadgupta3925
    @akshadgupta3925 หลายเดือนก่อน

    very good solution !!! excellent knowledge

    • @techdose4u
      @techdose4u  หลายเดือนก่อน

      welcome :)

  • @satyam2921
    @satyam2921 3 ปีที่แล้ว +3

    Thankyou, thankyou very much 🙌,
    I was really struggling to solve this

  • @himansuranjanmallick16
    @himansuranjanmallick16 3 ปีที่แล้ว +2

    Finally done😍, thanks sir for this selfless things.

  • @ajaypatidar
    @ajaypatidar 2 ปีที่แล้ว

    Thank you sir, finally i learn this method after watching this

  • @arvindg553
    @arvindg553 3 ปีที่แล้ว +1

    1 feedback
    Quality of video is Gold
    One thing is that main logic of program is not pressured
    Here include coin as many times as we want until available so 'i' remains 'i' this i can get it after so long time
    But beginner might not
    So please repeat main logic more than one time

    • @techdose4u
      @techdose4u  3 ปีที่แล้ว +1

      👍🏼

    • @arvindg553
      @arvindg553 3 ปีที่แล้ว +1

      @@techdose4u
      Reply from you is making joy and happy
      Love you TECH DOSE from Bangalore
      Actually my entire class is being crazy with this channel ❤️

    • @techdose4u
      @techdose4u  3 ปีที่แล้ว +1

      Great. Let's meet sometime. I am in bangalore too. I would like to meet your entire class 😜

  • @johnademola528
    @johnademola528 3 ปีที่แล้ว +4

    This solution is superb. Though, I tried running it for some Test cases and it failed. E. g Test Case coins = [2] and amount =3 failed. I changed this dp[n][amount] > Math.Pow(10, 5) ? -1 : graph[n][amount] to dp[n][amount] >= Math.Pow(10, 5) ? -1 : graph[n][amount] and it worked

    • @techdose4u
      @techdose4u  3 ปีที่แล้ว +1

      Nice :)

    • @johnademola528
      @johnademola528 3 ปีที่แล้ว +1

      Thank you

    • @techdose4u
      @techdose4u  3 ปีที่แล้ว

      @@johnademola528 welcome :)

    • @SatishKumar-nh1oq
      @SatishKumar-nh1oq 3 ปีที่แล้ว +1

      Thank you. I was struggling for this edge case.

    • @johnademola528
      @johnademola528 3 ปีที่แล้ว

      @@SatishKumar-nh1oq you are welcome

  • @abhinavkumar6344
    @abhinavkumar6344 2 ปีที่แล้ว

    tooo nice way of explaination

  • @pranayprasad50
    @pranayprasad50 3 ปีที่แล้ว +2

    Nice explanation sir, But if you work on your voice modulation it will be more fun because the pitch of the voice is constant so I was feeling a bit sleepy 😅, But really it was a good video 😊.

  • @sirasanihemaspandana7390
    @sirasanihemaspandana7390 3 ปีที่แล้ว +1

    Great Explanation Sir 👌👌

  • @mdarifnufqqdugir3278
    @mdarifnufqqdugir3278 2 ปีที่แล้ว

    Best explanation ❤️❤️

  • @prashantverma7843
    @prashantverma7843 3 ปีที่แล้ว +1

    well explained as compare to others clears all my doubts

  • @gvnchandra
    @gvnchandra 2 ปีที่แล้ว

    wonderful explanation, thank you sir.

  • @intunewithishan5386
    @intunewithishan5386 4 ปีที่แล้ว +2

    How this testcase's expected answer is 20? Which combination of coins would make the amount 6249?
    [186,419,83,408]

  • @starc701
    @starc701 4 ปีที่แล้ว +6

    interleaving-strings sir, this question always freak me out , i never get how it works.

  • @justanaverageguy4739
    @justanaverageguy4739 3 ปีที่แล้ว +3

    I think it can still be optimized. We can reduce the space by using 1D array

  • @vairamuthu2748
    @vairamuthu2748 3 ปีที่แล้ว

    while considering coin 2 , we can expect some minimization on previously considered coin such as 1 , why are we not considering that. what is the reason ?.

  • @RakeshKumar-yh7ro
    @RakeshKumar-yh7ro 3 ปีที่แล้ว +1

    Great explanation thank you

  • @anshuofficial166
    @anshuofficial166 ปีที่แล้ว

    Can you make a video for a range of data types, which to use when, like I was using INT_MAX but it gave me the wrong answer, but when I use 1e5 I give me the correct answer

  • @princeanthony8525
    @princeanthony8525 2 ปีที่แล้ว

    Why is the first row Infinity and NOT Zero. Not possible is same as Zero correct ?

  • @ankitkumarmishra5198
    @ankitkumarmishra5198 4 ปีที่แล้ว +1

    memozized code for the above problem:
    #include
    using namespace std;
    int coinChange(int index,int sum,vector& s,int n,vector&dp){
    if(sum==0) return 1;
    if(index>=n||sum < 0) return 0;
    if(dp[index][sum]!=-1) return dp[index][sum];
    if(s[index]>n>>sum;

    vector s;
    s.resize(n);
    for(auto &i:s) cin>>i;
    vector dp(n,vector(sum+1,-1));
    cout

  • @rahulbhatija1680
    @rahulbhatija1680 3 ปีที่แล้ว +1

    Thanks, dude!
    It helped.

  • @abhinavreddy1083
    @abhinavreddy1083 3 ปีที่แล้ว +1

    good explanation .... thank you

  • @demokraken
    @demokraken ปีที่แล้ว +1

    so, the video is 23 minutes long. With existing pictures and code...
    On interview it is assumed that a candidate
    1. Understands the problem
    2. Comes up with the right solution (never seen it before, right?)
    3. Produces correct code along with entertaining an interviewer with comments on every step as this process is not stressful enough already!
    How realistic is this for an hour timeframe?

  • @manishthapa8860
    @manishthapa8860 3 ปีที่แล้ว

    very nice explanation

  • @dhanashreegodase4445
    @dhanashreegodase4445 3 ปีที่แล้ว +2

    COULD NOT UNDERSTAND HOW U R FILLING TABLE FOR ACH PROBLEM

  • @abhiramnatarajan8093
    @abhiramnatarajan8093 4 ปีที่แล้ว +1

    Well explained!

  • @0anant0
    @0anant0 4 ปีที่แล้ว +2

    Very nice explanation! In your code, you have initialized dp 'as we go'. What is a better way: initialize dp before the loops (special cases for row zero, col zero, etc) or as you have done here?

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว +1

      Initializing before will be better because no of comparisons will decrease.

  • @sirasanihemaspandana7390
    @sirasanihemaspandana7390 3 ปีที่แล้ว

    Sir is it possible to solve with out using dynamic programming
    Coins= list(map(int,input(). split ()))
    Coins.sort()
    Count=0
    amount= int( input ())
    for I in range( Len(coins)):
    temp = amount
    dividecoin = amount//coins[-i]
    amount= amount-coins[-i]*dividecoin
    if( temp ~= amount):
    count+=1
    if( amount== 0):
    Print (count)
    break
    else:
    Print ("-1")
    Sir will it work ? Could you please check?

  • @revanth6476
    @revanth6476 3 ปีที่แล้ว

    cl = list(map(int, input().split()))
    tar = int(input())
    sum=0
    c=0
    i=0
    cl.sort(reverse=True)
    while sum

  • @syedkaja2045
    @syedkaja2045 4 ปีที่แล้ว +1

    superb!!!

  • @shaikhnabeel6443
    @shaikhnabeel6443 3 ปีที่แล้ว +5

    me watching the colourful sentences
    : 👁👄👁
    then watching it again because i didn't focused on explanation🥴

  • @camilocuervo8271
    @camilocuervo8271 4 ปีที่แล้ว +1

    How can I know the coins, I mean, how many of each one according to the table

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว

      You need to store that information separately.

    • @camilocuervo8271
      @camilocuervo8271 4 ปีที่แล้ว

      @@techdose4u Do you have any idea of how?

  • @amitavamozumder73
    @amitavamozumder73 3 ปีที่แล้ว

    Please make a video where we can output the path we took to reach min no of coins,
    do we need to maintain an array for each cell?
    or can we just have an extra flag like inclusion or exclusion on each cell and count from that?

    • @amitavamozumder73
      @amitavamozumder73 3 ปีที่แล้ว

      nevermind figured it out, we just need a boolean value in each cell, showing, included or not, then we can backtrack using the same logic.

  • @syedkaja2045
    @syedkaja2045 4 ปีที่แล้ว +1

    what are the base cases for recursive solution

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว

      Both recursion and DP have same base cases. I showed it.

    • @dhruvpurwar6642
      @dhruvpurwar6642 3 ปีที่แล้ว

      @@techdose4u a base case of val

  • @ajitheshgupta3017
    @ajitheshgupta3017 2 ปีที่แล้ว

    Can someone please explain that j-coins[i-1]

  • @mwshubham
    @mwshubham 3 ปีที่แล้ว

    Thank you :)

  • @ayyappahemanth7134
    @ayyappahemanth7134 4 ปีที่แล้ว +1

    Content was really good but straight 25 mins is somewhat overwhelming for me! But content was great, if upossible cut down the time of each video!.. but the content was really great!

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว +6

      25 mins is normal for DP 😅

    • @ayyappahemanth7134
      @ayyappahemanth7134 4 ปีที่แล้ว

      @@techdose4u Can't say no but try!

    • @vishalvikram8637
      @vishalvikram8637 4 ปีที่แล้ว +4

      He consider every level students.
      From pro to noob.
      So its ok.

    • @AbhishekSingh-fo9nv
      @AbhishekSingh-fo9nv 4 ปีที่แล้ว +3

      watch at 1.25x or 1.50x

    • @TejusNataraju
      @TejusNataraju 4 ปีที่แล้ว

      @@AbhishekSingh-fo9nv true !!!!!

  • @pendyalaabhishek8866
    @pendyalaabhishek8866 3 ปีที่แล้ว

    can any one tell me memoized approach.

  • @utkarshpanwar2358
    @utkarshpanwar2358 4 ปีที่แล้ว +1

    please upload the video of z algorithm

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว +1

      Sure

    • @utkarshpanwar2358
      @utkarshpanwar2358 4 ปีที่แล้ว

      @@techdose4u and please specify the difference b/w normal z algorirhm and improved version which having two intervals l and r how this is optimised then normal or without interval z algo
      thanks

  • @arindam1249
    @arindam1249 ปีที่แล้ว

    best

  • @tanveer.shaikh
    @tanveer.shaikh 3 ปีที่แล้ว

    We could have sort the array and start picking and increamenting the count

    • @flymaster28
      @flymaster28 3 ปีที่แล้ว

      That would be a greedy approach and wouldn't work in cases like: coins=[3,4,5] with amount=11. The returned value would be -1 since you would take 2 5s and be at 10, even though you can solve it by picking 4,4,3.

  • @mahipalsingh-yo4jt
    @mahipalsingh-yo4jt 4 ปีที่แล้ว +1

    first comment !!!!!!!!!!!

    • @techdose4u
      @techdose4u  4 ปีที่แล้ว +1

      Great :)

    • @267praveen
      @267praveen 3 ปีที่แล้ว +1

      And a totally useless one !!!

  • @sushantkumar4917
    @sushantkumar4917 3 ปีที่แล้ว +3

    bht confusing 😐

  • @pragyakalyanammaitrai4933
    @pragyakalyanammaitrai4933 3 ปีที่แล้ว

    if no coins && amt>0 why we use infinity why we are not using 0 instead of inf @TECH DOSE

    • @snehabaser3155
      @snehabaser3155 3 ปีที่แล้ว +3

      Because in all prev case we use max condition. Here we wanna find min no of coins. And here if we fill 0 then min is always 0 .
      Hope u understand :)

  • @tanayshah275
    @tanayshah275 3 ปีที่แล้ว

    Posting recursive solution just in case if anyone wants to take a look
    def min_coin_required(self, coins, m, n):
    if n < 0 and m > 0:
    return maxsize
    if m == 0:
    return 0
    if coins[n] > m:
    return self.min_coin_required(coins, m, n - 1)
    return min(1 + self.min_coin_required(coins, m - coins[n], n), self.min_coin_required(coins, m, n - 1))

    def coinChange(self, coins: List[int], amount: int) -> int:
    ans = self.min_coin_required(coins, amount, len(coins) - 1)
    return -1 if ans == maxsize else ans