Coin Change (LeetCode 322) | Full solution with beautiful diagrams and visuals | Simplified

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ต.ค. 2024

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

  • @boisaulit
    @boisaulit 6 หลายเดือนก่อน +31

    Looked at neetcode's solution 3 times and didn't undertand it. Here I understand it the first time. Thank you!

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

      because he explain top down approach

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

      @@kartikforworkhe did bottom up also but his was too complicated to me

    • @AndyBnq
      @AndyBnq 4 หลายเดือนก่อน +1

      True, his explanation is better than neetcode's for this problem and several others.

  • @SumanthKumar-ei1qp
    @SumanthKumar-ei1qp 5 ชั่วโมงที่ผ่านมา

    The amount of clarity you had in your explanation is truly amazing!!

  • @krrishh7
    @krrishh7 3 หลายเดือนก่อน +6

    Nice explanation of the concept. Keep doing more such videos. ❤
    However, just wanted to add a small detail here (in favour of others checking as well). It would be good if we could also initialise minCoinsDp[0] to 0 explicitly. As to reach amount 0, fewest number of coins is 0. Since its java code, I think it gets initialised automatically to 0, but for other primitive languages like c,c++ we need an initialiser and the loop in the example code is only running from i=1 (skipping 0).
    vector minCoinsDp(amount+1, INT_MAX); // default initialise all to INT_MAX
    minCoinsDp[0]=0; // special case
    If the code can be adjusted as above, all such ambiguity can be cleared.

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

      ikr? In javascript it's initialized to NaN

  • @codeforfreedom
    @codeforfreedom 11 หลายเดือนก่อน +7

    Gotcha, you finally made me understand that. After looking 3 different other videos and still was completely lost, thank you.

  • @anirudhakrishna6891
    @anirudhakrishna6891 10 วันที่ผ่านมา +1

    Amazing visualisation of the problem which helped me clearly understand the solution. Please continue doing your explanation with visualisations, they're extremely helpful

  • @ellenstuder4269
    @ellenstuder4269 6 หลายเดือนก่อน +3

    like everyone else, this was the first explanation of this problem (and dynamic programming in general) that made any sense to me. thank you!!

  • @whiletrue1-wb6xf
    @whiletrue1-wb6xf หลายเดือนก่อน +1

    Listen, your explanation for this f**king question is the best online!
    Let's put aside the fact that you'll never need this in a real job, but for job interviews, this specific explanation is the best-much better than Neetcode

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

    I was so happy whenever I search a problem on Leetcode and find your video !

  • @huaqian3654
    @huaqian3654 ปีที่แล้ว +7

    Best explanation ever! I was really struggling with this one. Big thank-you to you sir!

  • @amansahil2725
    @amansahil2725 3 หลายเดือนก่อน +2

    Dude you deserve more subscribers
    Wonderful explanation

  • @_RohitKasture
    @_RohitKasture 9 วันที่ผ่านมา

    Great explanation, thank you very much for making DP so easy.

  • @preetiupadhyay8760
    @preetiupadhyay8760 11 วันที่ผ่านมา

    Thank you so much for explaining the concept .

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

    Cleanest solution I could find for this problem. Thank you !

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

      Great to hear!

  • @pramodca1750
    @pramodca1750 10 ชั่วโมงที่ผ่านมา

    Thanks Nikhil, well explained. I felt quick discussion of how code works with the test data would have been more helpful

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

    Gone through so many other video solutions but understood nothing. This is the best explanation ever for this question!!

  • @nandhakumarkr3147
    @nandhakumarkr3147 7 หลายเดือนก่อน +2

    Great intention and good patience in explaining the approach. Kudos 🎉

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

      thanks for the support..will keep making more videos.

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

    Great explanation with amazing clear drawings. Thanks.

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

    Your way of explaining is excellent sir..

  • @sathviku-s6p
    @sathviku-s6p 8 หลายเดือนก่อน +1

    underated youtuber , u deserve views in millions brother

  • @ivandrofly
    @ivandrofly 5 หลายเดือนก่อน +1

    Fully understand this problem now- I would say the stairs claiming is also a good one to check if you stuck here

    • @nikoo28
      @nikoo28  4 หลายเดือนก่อน +1

      Yes, that is a similar one

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

    Your explanation is awesome sir.. but during that dry run code i was little confused...i was expecting u to tell about the for loop using some dry run....That was just my opinion..

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

      I understand...but I realized that the video already went too long, going over each step in the code would take another 10 minutes.
      If you follow the logic as explained, writing the for loop should not be tricky at all. What part of the loop are you facing a problem with? I can elaborate more as needed :)

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

      @@nikoo28 could you please explain the loop where you look through the coins and what exactly you are doing? I'm a little new to DP and I understand the solution but the implementation is a little fuzzy.

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

      What part of the loop are you facing a problem with?

  • @mmm-ie5ws
    @mmm-ie5ws 9 หลายเดือนก่อน +3

    the code part which is the most important part isnt explained well at all.

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

      Sorry if you felt that way...but I want to focus my channel on understanding the problem rather than writing code. I believe that if you have good problem solving skills, writing code is very trivial. There are a lot more channels who do a better job at writing the code :)

    • @ankitsrivastava2994
      @ankitsrivastava2994 7 หลายเดือนก่อน +1

      ​@@nikoo28means we should look other's solution instead
      so rude you are

    • @nikoo28
      @nikoo28  7 หลายเดือนก่อน +1

      Always remember that languages will continue to change and evolve with time. The concept and the logic will remain forever the same. :)
      So, in order to become a better coder, I would highly recommend you to try writing the code on your own. 😃
      If you are still interested to know how the code is working, use a debugger and iterate through the values. This way you will always be a better leaner.

  • @dhineshbabu9376
    @dhineshbabu9376 10 หลายเดือนก่อน +1

    👯 Finally, a video to understand this method 🥳🥳🥳

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

    Finally understood the code crystal clear

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

    Sir , I started watching your lecture series. I am able to understand very well but sometimes it is bit difficult to understand the coding part even though we understood the theory. Sir ,no one can beat u in the explanation of the theory. Spend some more time to explain code. It is reallly useful for us..I suggested my friends to watch this series..very useful series I say.❤

    • @nikoo28
      @nikoo28  2 หลายเดือนก่อน +1

      the thing is that today you have a lot of GPTs that can write the code for you. writing code in any language is no longer a challenge in my opinion. However, problem solving is and will always be the most important aspect.
      If you are understanding the solution correctly step by step, you will be able to write the code eventually. It is just a matter of time. To get the best learning, I would highly encourage you to write the code yourself, do not copy the provided code. :)
      All the very best for your goals!!

  • @ИгорьКабаков-з4м
    @ИгорьКабаков-з4м ปีที่แล้ว +1

    Respect, i love iterative explanations.

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

    Thank you so much sir for such nice explainations.

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

    Thanks for the visualization which brings more clarity.

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

      yep, visuals are easy to remember.

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

    Really Good Explanation! Thankyou.

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

    A big Thanks to you sir...bht better way se apne explain kiya..

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

    Best explanation ever! Thank you!

  • @Rob-J-BJJ
    @Rob-J-BJJ ปีที่แล้ว

    great explanationn my brother just wish you would've gone through the if condition you have in the last part, because I know it gets the min, but I wanted to see it explained how

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

      that is just comparison to get the minimum number. What are you struggling with?

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

    Can you write a code that finds the minimum number of coins and also prints the actual coins used ?

  • @vcs649
    @vcs649 5 หลายเดือนก่อน +1

    fantastic intuition

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

    Thanks

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

    Can we solve this problem using 2-D DP by taking two changing variables length of array and amount????

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

      try outlining a pseudo code/algorithm

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

      yes, it can be solved. And it is straightforward If you write the recursive code first then you can memoize it or write the bottom up using the recurrence.

  • @Hulkuuu
    @Hulkuuu 18 วันที่ผ่านมา

    Better if explained the IF conditon inside for loop 🙂

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

    explanation was 10/10 but you should once explain the code also using the same example line by line

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

      it is hard to explain line by line...everyone has a different coding style. If you understand the explanation, you should try to write the solution on your own.

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

    What would a brute force solution look like? Having a hard time visualising a bruteforce solution

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

      a brute force approach would involve generating all possible combinations of coins to find the minimum number of coins needed to make up the target amount.
      public int coinChange(int[] coins, int amount) {
      int result = backtrack(coins, amount);
      return (result == Integer.MAX_VALUE) ? -1 : result;
      }
      private int backtrack(int[] coins, int remainingAmount) {
      if (remainingAmount == 0) {
      return 0;
      }
      if (remainingAmount < 0) {
      return Integer.MAX_VALUE; // Return a large value to indicate invalid solution
      }
      int minCoins = Integer.MAX_VALUE;
      for (int coin : coins) {
      int subproblemResult = backtrack(coins, remainingAmount - coin);
      minCoins = Math.min(minCoins, subproblemResult + 1);
      }
      return minCoins;
      }

  • @SivaSiva-wi2q
    @SivaSiva-wi2q 2 หลายเดือนก่อน

    cant understand the logic u coded in the code...please explain that too in step by step

  • @pandeyshashidhar
    @pandeyshashidhar 8 หลายเดือนก่อน +1

    Thank You sooooooooooooo much

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

    aap nahi hote toh hamara kya hota? :D Thank you sir.

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

    I struggled for the whole day to be able to solve this problem. I could write the code by myself after watching how to fill in the array. One request - Can you make a video of solving the same problem using recursion?

    • @nikoo28
      @nikoo28  11 หลายเดือนก่อน +1

      i generally tried to avoid recursion. It is very very confusing...also every recursive problem can be solved iteratively. :)

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

      @@nikoo28 No Sir please make a video on recursion your teaching level is just wow understand all dp problem but unable to understand a recursion its request sir to make video on it.

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

      @@harshitkumar8988 Why do you want to solve it using recursion?

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

      @@nikoo28 Sir because i want from brute force to space optimization and tbh i didn't understand the concept of recursion i have solve approx 30 to 35 question on recursion but i didn't get it and the way you solve this problem is phenomenon . So if u use some sort of recursion explanation in between the lecture . That will be great

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

    Sir the explanation was excellent but pls explain the code because I am not able to understand that why are we writing as the code is.

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

      what part are you facing a problem with?

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

    Make videos on backtracking plz 😊

  • @divypareek8230
    @divypareek8230 4 หลายเดือนก่อน +1

    great video

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

    Hello, Can you share your studio setup ? what are the tools you use for drawing, editing?

    • @nikoo28
      @nikoo28  6 หลายเดือนก่อน +1

      Sure..I can elaborate more..but here was a sneak peek:
      th-cam.com/users/shortsh2oCQmwvv94?feature=share

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

    thanks bhai

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

    Beautiful explanation bhaii..!!

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

      It's my pleasure

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

    Thanks for posting!

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

      You're welcome

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

    Coine piker gurunchi app lo vache nebaru details anga tamobola

  • @OusmanBah-f8v
    @OusmanBah-f8v 2 หลายเดือนก่อน

    When bro explains something it sticks forever.

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

    Sir , im struggling to come up with dp solutions for a questions.so initially im solving with recursion and then memoizing and then converting it into dp. Is it ok or shoul i change my approach ?❤

    • @nikoo28
      @nikoo28  7 หลายเดือนก่อน +1

      it is a very good approach indeed if you can think with all different methods. Will often lead you to the best choice. Your approach is correct. With practice you will be able to identify patterns and come up with solutions naturally. All the very best.

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

      @@nikoo28 thanks for reply sir❤️

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

    sir could you please explain word break problem

    • @nikoo28
      @nikoo28  11 หลายเดือนก่อน +1

      i have that problem in my pipeline of videos. Will add it soon

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

    we want full dp playlist

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

      yes yes yes...adding more questions soon :)

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

    Thanks!

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

      Thanks for the support 😄

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

    good approach, but the worst explanation of the code that you have written., please explain what does every line means after the second for loop. 🤫😕

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

      what part of the code are you facing problems with? If you understand the solution perfectly writing the code for it should be trivial. We do exactly the same thing...using a for loop take one coin at a time and determine the minimum required. :)

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

    Amazing

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

    Best ❤

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

    what is the use of putting Integer.MAX_VALUE here?

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

      Just a sentinal value to make writing the code easier.

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

    bekkar time waste video

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

      What problems did you face??