Perfect squares | Dynamic programming | Legendre's theorem | Leetcode

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

КОМЕНТАРІ • 143

  • @abhijeetkumar2204
    @abhijeetkumar2204 4 роки тому +17

    1 hour ago I did it using dp.But I am addicted to your explanation so I came here.

    • @techdose4u
      @techdose4u  4 роки тому +2

      Nice :)

    • @abhijeetkumar2204
      @abhijeetkumar2204 4 роки тому +4

      @@techdose4u can you make video on how to use leetcode for interview preparation.thank u

    • @abhijeetkumar2204
      @abhijeetkumar2204 4 роки тому +3

      Also please make a video on how to to explain a problem in interview.

    • @techdose4u
      @techdose4u  4 роки тому +4

      Good idea I will make this first.

    • @techdose4u
      @techdose4u  4 роки тому +4

      Yea this is also good

  • @Official-tk3nc
    @Official-tk3nc 4 роки тому +31

    Tushor Roy, Back to Back SWE and Tech Dose -----------are combo pack for getting dream company

  • @marcousosewelle5501
    @marcousosewelle5501 4 роки тому +4

    Dude. If I ever make it into a top 5 tech company then I'll give you my first pay check. Serious. You are AMAZING!!!!!!!!!!

    • @r3xxxx
      @r3xxxx 10 місяців тому

      damn guy did you?

    • @eshanprasad3594
      @eshanprasad3594 10 місяців тому

      Its been 3years since you posted this comment, I'm curious to know did you make it?

  • @hellorvce
    @hellorvce 4 роки тому +5

    excellent explanation ...pls keep it up.....generally coders r not good at explaining what they code.....but u r a gem man!! hatsoff

  • @watchforabhay
    @watchforabhay 3 роки тому +2

    There are two aspects to such problems. The logic of the problem - which is real classy here in your video, clean and simple. The other aspect being that of implementation - the crux is given -- meaning the for loop. If you could really spell out how each case connects with the code (code flow) -- that will be super awesome and will be helpful for newbies . But overall great solution and explanation. Very helpful and really thankful

  • @AkshayKumar-xh2ob
    @AkshayKumar-xh2ob 3 роки тому +8

    Your solutions are always very unique, I'm curious how you gained this knowledge. Bcoz you either know this approach or you don't. There is no way to derive or logically build it.

  • @aakashparmar560
    @aakashparmar560 3 роки тому +1

    Best video explanation. You got a new subscriber here.!!

  • @Tensor08
    @Tensor08 3 роки тому +1

    Bhai Mazza aa gya 🤞👌👌👌👌👌

  • @srinivasakumaratmakuru293
    @srinivasakumaratmakuru293 10 місяців тому

    🎯 Key Takeaways for quick navigation:
    🧮 The *video discusses solving a mathematical problem related to perfect squares and dynamic programming.*
    💡 It *aims to find the number of perfect square sums that can be obtained from a given list of numbers.*
    📝 Legendre's *theorem is mentioned as part of the solution strategy.*
    🎯 The *goal is to achieve a minimum of 500 distinct sums.*
    🤔 The *video hints at applying concepts like Indian cuisine to illustrate the problem-solving process.*
    📚 It *emphasizes the importance of subscribing to the channel for more content and updates.*
    🔍 The *video encourages viewers to consider various factors and strategies in problem-solving.*
    📈 It *suggests that by understanding key concepts, viewers can tackle similar problems effectively.*
    Subscribing to *the channel is emphasized multiple times throughout the transcript.*
    The content *discusses various mathematical concepts, including squares, multiples, and divisibility.*
    There's a *mention of the importance of subscribing to receive updates and new content.*
    The transcript *includes some numerical examples and calculations related to mathematical problems.*
    Different methods *and strategies for solving problems are mentioned.*
    The transcript *also mentions the representation of numbers using different techniques.*
    It emphasizes *the importance of understanding and verifying solutions.*
    There are *reminders to subscribe to the channel for more content and updates.*
    Made with HARPA AI

  • @venothanand91
    @venothanand91 4 роки тому +4

    Kudos to Your thought process. Clean and simple.

  • @SKovac
    @SKovac 3 роки тому +1

    Excellent explanation!

  • @alphagrowth3327
    @alphagrowth3327 3 роки тому +2

    God level explanation. Great work man 🙌

  • @mohanvamsi007
    @mohanvamsi007 4 роки тому +1

    Your explanation is so elegant make it very simple to understand the solution

  • @awfulprogrammer619
    @awfulprogrammer619 2 роки тому

    Keep Upload! You really helping a lot. KEEP SHINING too

  • @radhu8
    @radhu8 3 роки тому +1

    LOL , Now I want to try only those questions on Leetcode for which you have a video! Your explanations are awesome! Please add more Medium and Hard level leetcodes!

    • @techdose4u
      @techdose4u  3 роки тому +3

      Haha....one day I shall cover all of leetcode 😀

  • @gurnoorsingh2954
    @gurnoorsingh2954 4 роки тому +1

    Great explanation sir
    Aur koi problem channel itna clear nhi samjhata

  • @deepaligarg2978
    @deepaligarg2978 2 роки тому +1

    Superbly explained. Thank you so much for making this video.

  • @ArifulIslam-im7wr
    @ArifulIslam-im7wr 3 роки тому +2

    Thanks...Sir, You Always Teaching The Best Methods.

  • @chandrakantasaini6438
    @chandrakantasaini6438 4 роки тому +2

    the way you explain, it is awesome. really impressive.

  • @Rishit.Chaudhary
    @Rishit.Chaudhary 4 роки тому +2

    For the memoization and DP method, you can start in a greedy fashion and start with perfect squares just smaller than N every function call. Something like:
    for(int i = sqrt(N); i*i as i is an int type
    and i*i = 1024
    so the next call would be min(ans, 1+solve(N-i*i)) => min(ans, 1+solve(1025-1024))
    This way the recursion would get the answer faster, but we have to use the branch and bound as well to prune the state space tree so that we do not explore it completely and waste time.
    We use branch bound technique here where we check if we are subtracting more numbers than what the current best answer did and if so then we can stop the recursion then and there and try some other lower value instead. This way we do not explore branches that will surely not give us the optimal answer, i.e. least number of subtractions for getting N.

  • @chetanpatteparapu7600
    @chetanpatteparapu7600 3 роки тому +2

    This video is gold!

  • @4747surya
    @4747surya 3 роки тому

    Can also be solved like coin change problem of leetcode
    least number of digits required to add up to a given number
    make a array from i=1 to i * I

  • @kajalkukreja694
    @kajalkukreja694 2 роки тому

    Such a clear explanation. Great work 👍👍👍👍

  • @chandrabhusanyadav5741
    @chandrabhusanyadav5741 2 роки тому

    Excellent 👍

  • @maths_with_fun8592
    @maths_with_fun8592 4 роки тому +2

    Nice explanation. Amazing

  • @sayanchowdhury3776
    @sayanchowdhury3776 4 роки тому +1

    sir thank you so much ,great explanation......the idea behind this is superb.....

  • @oqant0424
    @oqant0424 3 роки тому +1

    thanks a lotttttttttt u explained it so well🤩

  • @amanrai9880
    @amanrai9880 4 роки тому +1

    Dude you never seize to amaze me!!

  • @VinayKumar-ze2ww
    @VinayKumar-ze2ww 2 роки тому

    Great solution

  • @lokeshtech3319
    @lokeshtech3319 4 роки тому

    Very nice explanation

  • @bookalicious9849
    @bookalicious9849 3 роки тому

    Thank You ! you are the life savior of mine

  • @mrityunjaygiri3397
    @mrityunjaygiri3397 2 роки тому

    wonderfully explained

  • @sarahmimi5938
    @sarahmimi5938 2 роки тому

    Thank you so much! A real explanation!

  • @avikmallick2493
    @avikmallick2493 3 роки тому +1

    wow...the last method was amazing..just wanna know, should we know these type of theroems before or we just get to know these theroems when these type of problems arise

  • @kunalsoni7681
    @kunalsoni7681 4 роки тому +1

    Really very interesting and amazing session 😊☺️.. thank you sir to make daily such a helpful video 😊☺️..

  • @visheshyadav2683
    @visheshyadav2683 3 роки тому +1

    Your explanation is the best bro ,keep it up❤️

  • @saravanan925
    @saravanan925 4 роки тому +1

    What an explanation!!!

  • @snehal462
    @snehal462 4 роки тому +1

    man your solutions are amazing!

  • @garimakumari4346
    @garimakumari4346 3 роки тому +1

    woow man..thanks

  • @liaodaniel1684
    @liaodaniel1684 2 роки тому

    Excuse me Sir, are the two points at 19:57 the reasons why 13 can be used to solve the number 52? Thank you for your amazing videos!

  • @abhaysahoo7652
    @abhaysahoo7652 3 роки тому +1

    sir what is the software you use for writing on the screen?

  • @abhilashpatel6852
    @abhilashpatel6852 2 роки тому

    Thank you for the explanation. This question was giving me nightmare

  • @paragroy5359
    @paragroy5359 3 роки тому +1

    Nice explanation sir....doing a really great job thanks a lot for the video..really amazing..sir as we are using sqrt function in the for loop so don't you think the time complexity should be o(sqrt(n)*log(n))

  • @anmolwadali9227
    @anmolwadali9227 4 роки тому +1

    really great explanation sir

  • @kimpma7380
    @kimpma7380 3 роки тому

    why we need to create the int dp [n+1] instead of dp[n] when we use the recursion with memorization? Thanks

  • @ganeshkamath89
    @ganeshkamath89 2 роки тому

    Is it correct to think this way?
    1) If number is perfect square, it will be sum of 1 square
    2) If number is a Pythogorean hypotenuse, it will be sum of 2 squares. It also need not be pythogorean hypotenuse :)
    3) Otherwise if it is not of the form (4^a)*(8*b +7) then it is the sum of 3 squares
    4) otherwise it is the sum of 4 squares

  • @optimizedvishu7754
    @optimizedvishu7754 2 роки тому

    in line no.8 you are changing n , by dividing it by 4 , and using same value of n every where in the last code sir please explain if is it working ?

  • @JgNt3981
    @JgNt3981 10 місяців тому

    Sir, How to develop probelm solving skill ?

  • @nishantjawla4085
    @nishantjawla4085 2 роки тому

    For the method 3 bcz of while(n%4 == 0) th TC should be O(n) ?

  • @sangamsamdarshi4634
    @sangamsamdarshi4634 Рік тому

    it would help if you add chapters to your videos, btw explanation is great

  • @suhasnayak4704
    @suhasnayak4704 4 роки тому

    Great video! Thank you! What is the time and space complexity for recursion and memoization?

  • @vineetsharma4635
    @vineetsharma4635 4 роки тому +1

    What's the time complexity of recursive solution? Moreover, how to define a recurrence relation for it?

  • @rajatbudania6181
    @rajatbudania6181 4 роки тому

    very well explained :)

  • @crimsoncad3230
    @crimsoncad3230 4 роки тому +1

    Can you please help me with dynamic programming???
    I want to know how to start with dynamic programming.
    Easy to Medium.
    Just like you do for recursion when you are discussing a easy Tree question.
    Do it for DP as well.

    • @techdose4u
      @techdose4u  4 роки тому

      Got it bro. Actually in geeksforgeeks, you can find under DP, problems are sorted hardness wise.

    • @crimsoncad3230
      @crimsoncad3230 4 роки тому +1

      @@techdose4u Thanks bro.
      It was very helpful.
      But just when you are solving any DP problem, please mention something like these in the video: "This is a good problem to understand DP"
      OR
      "This problem might be a bit difficult for those people who are starting with DP"
      OR
      "This is an easy/intermediate/high level DP problem"

    • @exodus5948
      @exodus5948 4 роки тому

      @@crimsoncad3230 i suggest you to understand 0-1 knapsack problems. I have some standard 7-8 questions and most of the new dp questions are also an extended form of this as well.

  • @suharajsalim4549
    @suharajsalim4549 4 роки тому +1

    Thanks a lot!

  • @ridimamittal4064
    @ridimamittal4064 4 роки тому +1

    THANK YOU SIR !!

  • @AbhijeetNayak-connect
    @AbhijeetNayak-connect 4 роки тому +1

    Great videos, reduce the usage of ‘lets us say’, ‘hence’, ‘because’, ‘so’.

    • @techdose4u
      @techdose4u  4 роки тому

      That's the problem with me. I know I use many so's therefore etc. I dunno how to get rid of this 😅 Any suggestion?

    • @AbhijeetNayak-connect
      @AbhijeetNayak-connect 4 роки тому +1

      @@techdose4u Practice is the only way to get rid of these filler words. You've the videos to take notes of how many times you're saying these, that will give you an idea. Then, consciously you have to suppress these word. Sounds easier said than done :)

  • @kbhargavi4400
    @kbhargavi4400 4 роки тому

    Tq for ur efforts sir! 🙏🙏

  • @adityaagarwal1650
    @adityaagarwal1650 4 роки тому +2

    bhaiya how much total time do you invest in these solutions , ranging from finding different methods to recording them nicely ?
    :):):) Thanks for your hard work .

    • @techdose4u
      @techdose4u  4 роки тому +3

      Bro...you can only know it when you see me live. It requires a lot of effort to put video for a good question :) Thanks for appreciating my efforts.

    • @skystone1000
      @skystone1000 4 роки тому

      @@techdose4u Yes, I know it takes a lot of effort to do these things, thank you for your detailed explanation

  • @yitingg7942
    @yitingg7942 4 роки тому

    Your explanation is amazing!! Can you also do one for lc 91 Decode Ways please ?

  • @kavitameena67
    @kavitameena67 4 роки тому

    Which tool do you use for drawing and explaining ?

  • @jatinthakwani5370
    @jatinthakwani5370 4 роки тому +1

    Thank you so much

  • @rakshith3547
    @rakshith3547 4 роки тому +1

    Baap of DP!

  • @AkshayKumar-xh2ob
    @AkshayKumar-xh2ob 3 роки тому +1

    JAVA DP tabulation solution:
    class Solution {
    public int numSquares(int n) {
    int dp[] = new int[n+1];
    for(int i=0; i

  • @babycoder-shantanusaha5218
    @babycoder-shantanusaha5218 3 роки тому

    13=3*3+2*2
    13=9+4
    2 is the minimum

  • @zuojimmy1198
    @zuojimmy1198 3 роки тому

    thanks a lot

  • @ThePaullam328
    @ThePaullam328 Рік тому

    I'm confused about how you derived n % 8 == 7 from N / 4 ^ a = 8b + 7?

  • @myvinbarboza3038
    @myvinbarboza3038 4 роки тому +1

    Thanks :)

  • @SwetaKumari-uv4ul
    @SwetaKumari-uv4ul 4 роки тому

    Please upload video on egg dropping problem dynamic programming

  • @rohithkumartangudu4664
    @rohithkumartangudu4664 4 роки тому +2

    Bro please reduce the ads. It is disturbing while watching video.

  • @subham-raj
    @subham-raj 4 роки тому +3

    I came up with the dp solutions, but the math tho :(

  • @josemarcano5136
    @josemarcano5136 4 роки тому +1

    why ans=Math.min(ans, 1 + solve(n-i*i)); //why this formula. how did you come up with this formula? how can we derive this formula in 20 mins?

    • @techdose4u
      @techdose4u  4 роки тому

      This is not a formula. I showed you, that this is a breakpoint generation. You need to create breakpoints at Perfect Square intervals. This is the entire concept in this problem.

    • @abhijeetkumar2204
      @abhijeetkumar2204 4 роки тому

      @@techdose4u this question was somewhere similar to coin exchange problem

  • @vikramsingla2311
    @vikramsingla2311 4 роки тому

    Won't this solution also work if we ignore "Time Limit Exceeded" clause shown on leetcode.
    public int numSquares(int n) {
    int count=0;

    while(n>=0)
    {
    int a= (int)Math.sqrt(n);
    count++;
    n=n-(a*a);
    }
    return count;
    }

    • @DeepakKumar-nu6zo
      @DeepakKumar-nu6zo 4 роки тому +1

      No see when u do it for a no like 12 in first case u reduce ur no to 3 2nd case to 2 3rd case to 1 ,,oh then wait a minute no remains 1 all the time infinite loop.......

  • @darshantank554
    @darshantank554 4 роки тому

    First view🥳🤗

  • @tusharsharma5109
    @tusharsharma5109 4 роки тому +1

    Bro i read in your recent post that you will stop this Leetcode monthly series from July , please don't your explanation of these problems are just amazing. Even if I come up with a solution of my own then too i watch your video because always i learn something new :)

    • @techdose4u
      @techdose4u  4 роки тому +1

      I know its painful but still I had to take this decision. It will be more helpful to teach topicwise rather than random problems :)

  • @rishabhgupta7976
    @rishabhgupta7976 4 роки тому

    make video on wildcraft matching please

  • @vipinshanmugam3036
    @vipinshanmugam3036 2 роки тому

    i don't understand why we are taking minimum in recursive approach, someone help me!
    P.S: I'm not from a CS stream🙃

  • @rahulagarwal8059
    @rahulagarwal8059 4 роки тому +1

    👍🏻

  • @manjeshsingh3002
    @manjeshsingh3002 4 роки тому

    hadd h YAAR..koi videos dekhe ya tmhare ads?????

  • @noname-ut5rw
    @noname-ut5rw 4 роки тому

    Bad

  • @ankitMalviya152
    @ankitMalviya152 2 роки тому +1

    very good explanation