DP 1. Introduction to Dynamic Programming | Memoization | Tabulation | Space Optimization Techniques
Vložit
- čas přidán 6. 01. 2022
- Lecture Notes: takeuforward.org/data-structu...
Make sure to join our telegram group for discussions: linktr.ee/takeUforward
Pre-req for this Series: • Re 1. Introduction to ...
Full Playlist: • Striver's Dynamic Prog...
In this video, we have discussed what is memoization, what is tabulation, what is space optimisation with the classic Fibonacci problem. You might feel that this question has been done by you, but I will still urge you to watch this till the end because this is going to teach you a bunch of stuff.
If you have not yet checked our SDE sheet, you should definitely do it: takeuforward.org/interviews/s...
You can also get in touch with me at my social handles: linktr.ee/takeUforward
The notes are added to the description :) Keeping the blackboard size as it is because I don't wanna stretch it and lose over quality. Cannot upload more than 1 video daily, because I have a full-time job, and it takes 3-4 hours per video, including editing and all.
Best best best!!!!!! ❤️❤️
Thanks for making these videos. It's astonishing that you can run your channel in such scale when having another full-time job!
Please increase the font size😶🌫😇
@@coding8000 you'll give the editor salary ?
Understood. And thanks for the video ❤️. It's pro explanation
Thank you for not forgetting us after joining google
@@vivekshah3995 😂😂🔥
Same feeling
He is the LION. Lion 🦁🦁🦁 never forget !!!
He born to do multitasking 🤩❤️
@@vivekshah3995 yes 😂
Years ahead !!! Striver would be going into history as legend for all IT students!!!! 🙏🙏🙏🙏🙏🙏
indeed!
My take from the video:
1. Recursion: each function calls give rise to 2 more: therefore O(2^n)
2. Memoization: stores in an array: O(n)
Subproblem results are stored in an array, ensuring that each subproblem is solved only once.
3. Tabulation: iterative approach and takes O(n) subproblems from the smallest to the largest.
RECURSION: Top down: We start from answer, go to the base case and then go back
MEMOIZATION: TOP DOWN: avoids redundant calls done in recursion reducing time complexity
TABULATION IS: Bottom up: We start from the base case and we try to go to the required answer
Thank u
I have started very late with DP Series but I am speechless after the video. Fibonacci looks like basic stuff for everyone but the way you have curated it using Memoization, Tabulation and Optimized (No extra space) deep rooted in my mind ("Understood"). Hats off brother!!! This gives me more energy and confidence to complete DP Series.
I am not a master of recursion but i completely understood the whole lecture and enjoyed it!
This is my first dp video that I watched and I am totally comfortable with it
Thanks striver bro❤️
Agreed bro 🔥
love the energy you have put in the entire video. it motivates me to watch 2,3 more lecture in one go.
Finally starting with DP series that i had been putting off for a long time...A wonderful lecture by striver as always. You are truly the best. Words are not enough to express my gratitude for your videos. You have made several difficult topics easy for me. I bet this one is going to be just as wonderful. Hopefully i can master this topic too by the end of your playlist. Oh forgot ..."UNDERSTOOD !!"
I am blown away with the quality of the content and especially the optimization of space complexity at the end ...Literally nobody started DP with this clarity and precision....More power to you striver
The energy this guys put in videos is just awesome
brother #Striver
Date 17/06/23
I start watching your video at night 2 Am and now it is 6:30 Am feeling very sleepy but the ( energy + enthusiasm ) you are showcasing in this video make me motivate to watch more 2 and 3 videos , Really nice content with great knowledge
Also dont compromise sleep , Its important. All the best!!
@@iamnoob7593 yes
Us Moment!
how is ur progress going
@Striver I am wising I started following your content 2 years back , seriously its a goldmine . Thanks for all what you do for tech community for free.
I am learning first time "dp" and I understood whatever you taught . Thank you striver bhai ❤️
This guy is going to revolutionize the entire Indian coding community with his simple and clear explanations of very hard topics
thanks for the videos and notes and everything they are very helpful
Thank You So much dada. Just got started with this amazing DP series. I manifest to have improved in DP, Graph, Tree, my DSA skills, my CP skills and work at a top product based company in the next couple of months. Thank You Striver, Thank You Universe, I am very grateful
You're one of the most positive guy, Striver. I instantly start to feel motivated when I get across your videos.
The way you teach stuffs by deep dive into it is amazing man...
It's easy to understand what you teach because the way you teach.
Hats off to your hardwork and dedication!!!
Not "just understood" but a different level of understanding. Hats Off !!!!!!
Loved the way you related everything to recurrence relation.
the videos of dp series are good,you will fall in love with the first video itself
Understood a lot of this even without studying your recursion series, now will go and watch the recursion series
I have finally started after procrastinating for such a long time and now i feel why didn't i started earlier, because after the very first lecture, i have got addicted to this.
And this energy our STRIVER has.......ohh god he is really the Virat Kohli of programming world.
And hell yeah UNDERSTOOD !!!
You are really an inspiration for me. LOVE and RESPECT
understood. I cannot believe such quality content is for free, you are amazing
Thanks brother ... for removing the fear of dp..... very well explained basics,,,
What A energy ⚡ level You have! And You explained everything such a detail.. When You throwing your lecture it seems like you are into it. That's why the Lecture is best in CZcams. Thank you so much!
Omg raj!!! The amount of energy with which you delivered is really appreciated even a person will wake up from sleep😂😂 and most of people including me has already solved this problem but I was unaware of tabulation and space optimization... I was that involved in the lecture ki pata nahi chala kab 30 mins hogaye. Thank you raj for this amazing series definitely going to follow this
Great Explanation! Huge Respect to you Striver Raj.
and of course, "Understood"
I have always been scared of DP . But this video is Great . I understand DP in One video. God Bless You Man. ❤
Hope someday I'd have good problem solving skills like you ❤️.
Your energy while you speak is just amazing and ofc no doubt the best content!!!
Hats off to you Striver!✌
++
DP journey is about to start. Excited.
So glad i came across your channel.
Nothing can be better than this; I understood the whole thing, and by the time you optimised that space complexity to a complexity of 1, I was totally gone, like, "Man, this person is just out of this world." Thank you, Bhaiya, for this wonderful explanation.
Nothing better than this SIR ...... Thank you so much SIR 🤟🤟🤟
your works are absolutely appreciable ,thank you so much sir!
thanks Raj for this. I have always been scared of DP like a lot of people. I hope this really helps me to improve myself in DP. God bless you man.
i have learnt graphs from your graphs series, it was amazing , helped me understand the main concepts
excited about DP !
your explanation was exordinary .. Thank you for the explanation
I understood its like a piece of cake walk and mastered your recursion playlist which made me recursion look very easy
you are vardaan for IT students.
Thank you God for sending a teacher like you. 🙏😇❤
I am learning first time D.P and I understood whatever you taught . Thank you striver bhai ,your explanation really makes every topic so easy
excellent teaching and the energy of striver's teaching is insane
Understood......Thanks a lot Striver Bhaiya.........🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
What a teaching bro! Amazing confidence and teaching like you have never seen before., Thanx for the series.
STEP1 Create a dp[n+1] array initialized to -1.
STEP2 Whenever we want to find the answer of a particular value (say n), we first check whether the answer is already calculated using the dp array(i.e dp[n]!= -1 ). If yes, simply return the value from the dp array.
STEP3 If not, then we are finding the answer for the given value for the first time, we will use the recursive relation as usual but before returning from the function, we will set dp[n] to the solution we get.
please pin this comment...its very useful
Thanks a ton @takeUforward for ur awesome series and very organised playlists. The way u explain n the way its documented in the website is really superb.
Understood. Amazingly Explained 🌟
Small Correction✅-> At 22:05 Fibonacci DP code is correct, but at the base condition i.e. if(n it should be if(n
understood all the concepts, so easy to grasp as u teach so good , thanks for these lectures bhaiya
Understood Bro! Heartful Thanks for your effort!
Thanks man! Your videos really makes everything easy to understand moreover the program Dry run also helps understanding the approach behind it.
Most Awaited Series Of DP Thank You Striver for all DSA Playlist Uploaded Till Now.🙌
Understood.. This is my first video of dp that I watched and really understood in very easy way.. Striver, you are gonna rule in future like SRK..
UNDERSTOOD . .thanks for helping out community!!
Striver your lectures are very interesting and we can understand the advanced concepts easily from your lectures. Thank you ❤
A suggestion for those who are learning live, keep the live chat hiddden until and unless it is necessary. This series will be lit! 🔥and yes liked shared and understood
Great Playlists! Please add Time-stamps as it makes it easier to jump to required parts
understoodddd , tomorrow i have a technical round interview, literally i am watching this today ,so much thank you striverrrr always a big fannnnnnn
I "understood" like never before. Thanks to striver.
this man is helping more than thousand of students at free of cost.the content provided by him is better than any paid course and the topics covered by him are very tough but the way he explains solution are extraordinary.
really?
Understood 💯💯 Great Explanation. Thank you very much for all you efforts🔥🔥
Thank You so much Sir 😃...Your explanation cleared all my doubts
Understand🎉
It's the best playlist ever
Yooooo Let's goo, Finally👏👏
Understood, the best part is the optimization of the space complexity which you explained✌✌
DP is very fancy word even after having 10yrs of experience I wasn't sure what is DP, you explained it really well. Thanks.
Thankyou STIVER, I understood.
watching dynamic programming playlist second time ,let's do this shift and let me crack my interview, i have already got placed , and cleared first 2 rounds in ZOHO company with my 40% skills in DSA, now i have to level up my skills to next level , to this i have to complete this play list let's do this
I think there's a small bug in the space optimized code. For n=0, the output will be 1,instead of 0, as prev is storing 1. Hence, we should write a seperate if check for n=0. Rest all looks good.
The final code should look like ->
class Solution {
public:
void fib(int n) {
if(n==0){
cout
I didn't get it bro ,can we connect I'd ur on LinkedIn
@@Jason-qm8mu he is trying to say if we calculate the value of f(0), it will give output as 1 because prev is 1, and output is prev + prev2. He just added a condition of n == 0.
No one can beat the Energy level of striver while he teaches any concept🤩
ho na
I was Understood concept very well.
1 of the Best channel (CODING)
First Comment on the amazing Series of DP ❤️🔥
Just AWESOME!
Never thought such a simple problem can be solved in so many ways and with such optimization, why do our teachers never talk about these things?
Because Professor don't know this concepts and through School & College Faculties we are gaining only Basic Knowledge of any subject 😑
Previously I scared only by taking the name of dsa, now I feel that I can also do it. All thanks to you striver bhaiya.
"Understood".Thank you Striver for always bringing out the best from your side.
Thank you for tbe efforts.can u please explain java code as well😊
"Understood"
Added in notes, its almost similar. Not a big diff.
Understood! Thank you Striver :)
#include
using namespace std;
//Top-down approach
int FibonacciMemoized(int n, vector & memo){
if(n
Understood…Thnks a lot for this series and really appreciate the efforts u are putting in for this series!
Understood Bhai! Amazing Explanation 🔥
the best course ever, one small request
brother if possible add timestamp's
Yeah it'll be reallu helpful
Please upload at least 2 videos per day if already recorded🙏🙏
btw loving your teaching
Sorry bro, full time job :(
Understood!! Thanks a lot, sir.
I'm already feeling motivated. Thanks for all these. ❤
Please take some variations also other than standard dp problems
Yess sir
@@rox_official9407 yes something different from Aditya Verma dp series
@@raviashwin1157 btw he was my clg alumni
@@raviashwin1157 bhai me Aditya verma ka dekhu kya phele ?
Ya sirf yahi dekhunga to kam ho jaega
@@rox_official9407 Dekh le bhai time hai to 2x me bhi ho jayega aaram se
Bro don't scream at me, I am afraid xD
I understood DP finally!!
Getting started with DP from today. This video made me clear with the concept of dp! I mean what dp really is. I hope to complete the whole series by 19th of july(next month). Thanks for this great content.
Really appreciated your effort!
Thanks so much Striver.... Understood!
understood, thanks a lot for this amazing series...
Thank you so much for this amazing playlist.💙
For my future self, let's see whether I am able to complete this by June 21, considering 2problems/day :)
Nicely Explained!
Great explaination!
you are the best man! keep it up!
Started learning DP today...."understood" it.
😂
Understood. Thank you 🙏
Understood - Thank you
Understood sir, unforgettable
Understood very well!
Incredible, tnks sir!