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
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.
🎯 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
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!
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.
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
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))
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
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 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"
@@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.
@@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 :)
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 .
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.
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.......
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 :)
1 hour ago I did it using dp.But I am addicted to your explanation so I came here.
Nice :)
@@techdose4u can you make video on how to use leetcode for interview preparation.thank u
Also please make a video on how to to explain a problem in interview.
Good idea I will make this first.
Yea this is also good
Tushor Roy, Back to Back SWE and Tech Dose -----------are combo pack for getting dream company
☺️
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!!!!!!!!!!
damn guy did you?
Its been 3years since you posted this comment, I'm curious to know did you make it?
excellent explanation ...pls keep it up.....generally coders r not good at explaining what they code.....but u r a gem man!! hatsoff
Thanks :)
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
👍🏼
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.
Best video explanation. You got a new subscriber here.!!
Thanks
Bhai Mazza aa gya 🤞👌👌👌👌👌
😊
🎯 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
Kudos to Your thought process. Clean and simple.
😁
Excellent explanation!
Thanks ☺️
God level explanation. Great work man 🙌
Thanks 😊
Your explanation is so elegant make it very simple to understand the solution
Thanks
Keep Upload! You really helping a lot. KEEP SHINING too
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!
Haha....one day I shall cover all of leetcode 😀
Great explanation sir
Aur koi problem channel itna clear nhi samjhata
Thanks :)
Superbly explained. Thank you so much for making this video.
Welcome :)
Thanks...Sir, You Always Teaching The Best Methods.
Welcome :)
the way you explain, it is awesome. really impressive.
Thanks
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.
This video is gold!
👍🏼
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
Such a clear explanation. Great work 👍👍👍👍
Excellent 👍
Nice explanation. Amazing
Thanks
sir thank you so much ,great explanation......the idea behind this is superb.....
Welcome :)
thanks a lotttttttttt u explained it so well🤩
Welcome 😊
Dude you never seize to amaze me!!
😁
Great solution
Very nice explanation
Thank You ! you are the life savior of mine
wonderfully explained
Thank you so much! A real explanation!
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
Learn & apply :)
Really very interesting and amazing session 😊☺️.. thank you sir to make daily such a helpful video 😊☺️..
Welcome :)
Your explanation is the best bro ,keep it up❤️
Thanks ☺️
What an explanation!!!
Thanks :)
man your solutions are amazing!
Thanks bro :)
woow man..thanks
Welcome 😀
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!
sir what is the software you use for writing on the screen?
Thank you for the explanation. This question was giving me nightmare
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))
really great explanation sir
Thanks
why we need to create the int dp [n+1] instead of dp[n] when we use the recursion with memorization? Thanks
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
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 ?
Sir, How to develop probelm solving skill ?
For the method 3 bcz of while(n%4 == 0) th TC should be O(n) ?
it would help if you add chapters to your videos, btw explanation is great
Great video! Thank you! What is the time and space complexity for recursion and memoization?
What's the time complexity of recursive solution? Moreover, how to define a recurrence relation for it?
Meomoization code cplexity is o(n)2
very well explained :)
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.
Got it bro. Actually in geeksforgeeks, you can find under DP, problems are sorted hardness wise.
@@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"
@@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.
Thanks a lot!
Welcome
THANK YOU SIR !!
Welcome
Great videos, reduce the usage of ‘lets us say’, ‘hence’, ‘because’, ‘so’.
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?
@@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 :)
Tq for ur efforts sir! 🙏🙏
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 .
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.
@@techdose4u Yes, I know it takes a lot of effort to do these things, thank you for your detailed explanation
Your explanation is amazing!! Can you also do one for lc 91 Decode Ways please ?
Which tool do you use for drawing and explaining ?
Thank you so much
Welcome
Baap of DP!
🙏
JAVA DP tabulation solution:
class Solution {
public int numSquares(int n) {
int dp[] = new int[n+1];
for(int i=0; i
👍🏼
13=3*3+2*2
13=9+4
2 is the minimum
thanks a lot
I'm confused about how you derived n % 8 == 7 from N / 4 ^ a = 8b + 7?
Thanks :)
Please upload video on egg dropping problem dynamic programming
Sure
Bro please reduce the ads. It is disturbing while watching video.
Sure.
@@techdose4u thank you
@@rohithkumartangudu4664 DONE
@@techdose4u thank you bro. Are you telugu guy??
No 😅
I came up with the dp solutions, but the math tho :(
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?
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.
@@techdose4u this question was somewhere similar to coin exchange problem
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;
}
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.......
First view🥳🤗
😁
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 :)
I know its painful but still I had to take this decision. It will be more helpful to teach topicwise rather than random problems :)
make video on wildcraft matching please
i don't understand why we are taking minimum in recursive approach, someone help me!
P.S: I'm not from a CS stream🙃
👍🏻
👍
hadd h YAAR..koi videos dekhe ya tmhare ads?????
Bad
very good explanation
Thanks 😊