Please try to avoid reveals like these in the comment section. What it does is, 1. reduces the average watch time for this video which impacts the creator, 2. the viewer misses the other important things said in the video apart from just the highlight.
I’ve had dynamic programming show up in interviews twice. Anecdotal. But, I also went to a school for engineers that just taught algorithms and how to handle behavioral questions, how to negotiate (this part paid for the course even if you ignore everything else), and how to build a resume. They taught dynamic programming specifically because it was being asked. If you understand recursion. And if you understand how to make a cache. Then you only need to learn how to recognize when a problem can be broken up into smaller sub problems to eliminate repetitive work.
don't you think processing alot of steps during recursion or dp might be difficult and if at any stage you get confusion it will be hard to understand i start dp and quit all the time as i get confused all the time
@@jitendrakumar-vv8ho DP is very difficult, but dont give up. Keep practicing, and focus not on coding but solving the problem on paper, or at least understanding how to solve it more
This is a thank you message to Neetcode ✨ I'm really glad I found your channel. I come from a non-CS background and I finally got into the 'FAANG' list, and a major contribution goes to you. I understood the whole concept of Trees and intervals only because of your videos buddy, thank you so much for all the work you've been doing 🖤 (I know getting into FAANG may not be that great of an achievement for everyone out there, but coming from a background where you didn't have any exposure to tech, it's a huge deal for me)
this really helped get a broader picture on what I need to learn. I'm self-taught which makes it really difficult going through these interviews. Like what is recursion? I never used! But your channel has helped me learn so much, so thanks!
This is a great list - having done a whole bunch of the blind 75 ones, I can definitely see that mastering the application of all of these here allows you to basically solve all common problems. Also dynamic programming is totally overrated cos in a real SWE job I can imagine the number of times you actually use it is like...0.01%, if ever.
IMO if there is a better channel for coding interview prep it is not in this this world, this is IMO by far the best resource to prepare, everything well organized , excellent explanations and a lot more. Million thanks
I really recommend using whiteboard every time you make a technical challenge, specially in interviews, it shows you understood the problem and it makes you explain how you are designing the solution. It also (for example) helped me get the best solution in the 375 - Guess Number Higher or Lower just by drawing the problem. Never had a 0 milliseconds answer on a solution that I wrote on my own 😅
I'm currently pursuing mechanical engineering but lost interest in it a month ago and switched to coding. I'm in my 6th sem and just got finished with basic ds and am practising them at the moment. It's really a lot of pressure when you consider that there are people who have already learned what you are atm a good while back and are many steps ahead of you and you're competing against them. I don't have a lot of time left but still I'm trying to do my best, and videos like these really help a lot. Thankyou so much
I've done quite a few Leetcode questions but these are the two I find these two topics the most difficult by a wide margin! Really struggle with these two.
I couldn't agree more with this list ! Honnestly, I really think once you get the hang of recursion/the recursion stack and why log(n) is pretty neat, then a lot of other things become much easier to grasp. Btw, I think nobody would mind if you beefed up that graph algorithm playlist a little more, it's totally jaleous of the DP playlist xD Like Vegeta is jaleous of Goku kinda thing
Just started interviewing this month for mid/"senior" level SWE roles again, so far the majority of problems have been sliding window in some shape or form. Today I got some bit logic operations one that I totally bombed because I always forget which shifting to do for digits. Sigh.
I don't work at a major company, but where I work, we really only care that pointers don't confuse you and that you can do basic problem solving. Even with the bar so low, we rarely find anyone that fits.
Hi neetcode! 2:56 Doing heapify costs O(n), but when we pop each element to get the minimum or maximum element (depends on maxHeap or minHeap), it will cost O(log n). It means the total generally will cost O(n log n) because we need log n to get the particular element for n size.
Sliding Window is actually a Dynamic Programming technique. You start with the small subproblem and gradually progress towards larger subproblems by reusing the result of the previous ones until you get the final result.
Time should really name you Person of the Year!! At the very least, you should be on the TIME 100: Most Influential People of 2022 - you've helped so many people! Thank you!
I did start to solve problems using BFS, DFS, Recursion in my dream lol since I began to prepare for my incoming Google interview. I hope I can pass it.
When I started to prepare dor DSA 6 months ago, I only had a theoretical understanding of the concepts you've said here. 6 months in, now I've solved 150 questions and my understanding of all these concepts is pretty good. You're a great resource dor coding interviews. Please do some videos on LLD also since that's more important than HLD for junior levels.
I started Dynamic PRogramming today. Thanks for saving me 😅 . Can you please let us know about GOOGLE? what type of DS & Algo is common in Google interview questions?
Wow ... This is an unexpected treat after 5-6 videos over last week !!! LOL .... You rock dude ! Thank you for this one. Since you mentioned - would definitely love your google interview experience and if it covered sys interview, would love videos on those topics. You are an awesome teacher !!!
Even if he teaches everyone how to ace a “typical” FAANG technical interview, the result would be that they no longer act as an effective way to filter out candidates, and they would just change what they ask, rendering the “answers” useless for interviewing.
It will be very beneficial if we can have a separate playlist for Hashmaps. It's particularly important for folks trying to prepare for data Science interviews- where python coding questions are typically not that hard but not easy as doing simple for loops.
nice one, please do a series for beginners who are just starting into this like a career path or something how they can start on this journey where to begin what to learn first and then move on to next step of solving algorithms etc don't think a beginner programmer can do/solve these problems without having solid understanding of OOPS / Loops / conditions basic data structures thankalot.
Thank you so much for the video. This is very helpful. Is there a video where there in explanation of how each of these algorithms work ? Or are they explained in individual videos where you have solved questions that uses these concepts ?
Thank you for all you do! I appreciate it a lot! Can you do a video on your google interview experience? The concepts, level of difficulty and etc...? I'm a bit surprised you did not put Dynamic programming up there, for someone who just interviewed at Google, or is Google one of those companies trying to get rid of it? Thanks in advance!
Every topic / concept has its own share of easy, medium and hard problems. I dont get it why people are so afraid of dynamic programming. It is not as hard as people call it out to be. There are so many 2 pointer, heap, binary search problems which are waaay harder than DP. You will practice recursion anyway, you will practice DFS anyway. DP is just adding 1 more line to the recursive code (and ofcourse understanding what that line does).
I'd like to go in each topic of these neat list creating a SIMPLEST application to the concept and growing with possibilities over that concept. (like: a simplest graph traversal, now with weights, now the graph is implicit..)
Thanks so much for curating this list! Can you please create a playlist for HashMap questions? Or may be make one video pointing to which problems can be considered as HashMaps.. I often get confused as to what HashMaps are esp in Python as Python has dictionary data structure and my mind always goes to this when talking about HashMaps. Thanks so much in advance!
Ah, good to know that DP is not that important! I only did 100 DP problems, not that big of a deal 🥲 I have my Google onsite tomorrow, any tips to keep the tension under control?
Always awkward when an interviewer isn't aware of your proposed solution and its complexity and you need to spend several minutes to explain while time is working against you.
@7:22 lol i believe the j is silent in djikstra's! also yes pls make a video on your experience interviewing at google. didn't you say that was your first full time interview?
What would you recommend if a heap problem comes up and we're using say JavaScript which doesn't have a built in heap type? Should we try and implement a heap on the fly or should we solve it less efficiently and just note we'd use a heap if a library were available?
We should use library. Only limited time of 45mins( at max ) is given per problem in a coding round. If the language doesn't have in built heap then switch the language.The interviewer wants to check how you can use existing Data structures to solve your problem efficiently.
@@amitpadaliya6916 I disagree. You can just as easily say "JS doesn't have this data structure, so I am going to assume it exists and solve the problem". They aren't testing your ability to create a data structure from scratch.
Thank you for this vid and all the other ones. Have you done "CAPACITY TO SHIP PACKAGES WITHIN D DAYS" problem yet? Would love to see your tutorial on it.
That one is tough. I don't like the condition function for that problem, I think it's an implicit graph/dp problem so pretty hard. I had an easier time with 2187. Minimum Time to Complete Trips and KoKo eating banana problem.
Thank you! Neetcode. I always looking forward to your videos every day, and keep me motivated while grinding through the coding problems. Keep up the great work! ps, thanks for the suggestion and the discount of AlgoMonster! :)
He meant that Sliding window uses 2 pointers, one that defines left bound of the window, and another one the right one. Two Pointers Algorithm is when one pointer starts at first element, second on last, and there a target number. If the sum of the numbers of both pointer is bigger than the target, move second pointer to the left. If it is smaller, move first pointer to the right. And in result you'll get two numbers that will result in a target number when added.
Neet, I must say your drawing explanation helped me a lot to learn quickly. I followed most of your curated75 explanations to create a mind map of your drawing explanations. Will you please create a playlist for grokking-the-coding-interview's problems as well plus grokking-the-system-design-interview if possible. These courses are really very costly if we convert them to INR 🙃
sorry if out of topic. but is there any recommendation programming language that should we use in coding interview? like in my cases, i got familiar with javascript, is it okay if i do the coding interview with js? or should i learn java to do the interview?
tbh I don't really understand why people think dynamic programming is so hard. DP = recursion + memo tables, that's all it is; if you have a solid grasp of recursion then DP should feel quite natural
Hey just a quick question, are datastructures and algorithms problems(the ones asked on leetcode) useful in the long term for Software Engineers? Or are they only helpful in cases such as interviews? Thank you!
In the real world, someone much smarter than you already implemented these data structures and algorithms for you in a more efficient way than you could probably ever write. Many come in the standard library of the programming language that you need to work in or as an external lib you can include in your project. So implementing data structures and algorithms is usually reserved for specific needs when the out of the box solutions don't solve the problem for you. Most of the time you will just use these premade solutions to solve the problem in your app. Knowing data structures and algorithms is essential because I'd say 50% of a software engineer's job is knowing when to apply which tool to solve a problem. That way you're not wasting time remaking the wheel in a probably more bug prone solution, but instead improving your productivity and providing a harder to break solution. Software engineering is all about recognizing patterns, when you know these patterns you can optimize your dev time and your solution, improve readability and shareability and so on. You will also know the trade offs of each tool so you know when it's better to apply a different tool than it might seem at first glance. Depending on your project most of the time you're probably not gonna need anything besides the basics and to just know the API of the standard library of your programming language. You won't be solving complicated algorithmic problems most of the time either, most of the complexity will come from the architecture you're using and the business requirements of your project. Knowing how to reverse a binary tree might not help you there, but if you understand how to solve that kind of a complicated problem, then you can probably figure out how to solve whatever is the actual problem at hand because it demonstrates you're good at pattern recognition and breaking down problems into smaller divisible chunks that are easier to solve. Of course there is a lot more to the software engineering roles than just that, lots of communication and organizing skills are needed besides it among other things, but this is an easy way for interviewers to standardize the process to and filter out unwanted candidates. Remember, the interview isn't there to pick the best person for the job, it's to make sure you filter out all the undesirables.
You probably don't realize this but most videos are nowhere near the quality of yours because you always explain your thought process and draw it out. No other TH-camr does that and I have neve forgotten how to do a question if I watched your video.
To be clear for anyone else not wanting to waste time, this video is just a lot of talk and almost no coding. If you're expecting to see code examples, don't waste your time with this video.
🚀 neetcode.io/ - I created a FREE site to make interview prep a lot easier, hope it helps! ❤
1:21 - Heap
3:17 - Sliding Window
4:30 - Binary Search
6:46 - DFS & BFS
8:08 - Recursion
9:16 - Hashmap
Any recommended order while learning?
Please try to avoid reveals like these in the comment section. What it does is, 1. reduces the average watch time for this video which impacts the creator, 2. the viewer misses the other important things said in the video apart from just the highlight.
@@chagsssss If people really care about content they will watch it. This helps people avoid watching things thet may already know.
thnx
Thank you! Surprised that there's no Arrays....
Number 6: Heap
Number 5: Sliding Window
Number 4: Binary Search
Number 3: DFS & BFS
Number 2: Recursion
Number 1: Hashmap
I’ve had dynamic programming show up in interviews twice.
Anecdotal. But, I also went to a school for engineers that just taught algorithms and how to handle behavioral questions, how to negotiate (this part paid for the course even if you ignore everything else), and how to build a resume.
They taught dynamic programming specifically because it was being asked.
If you understand recursion. And if you understand how to make a cache. Then you only need to learn how to recognize when a problem can be broken up into smaller sub problems to eliminate repetitive work.
don't you think processing alot of steps during recursion or dp might be difficult and if at any stage you get confusion it will be hard to understand i start dp and quit all the time as i get confused all the time
@@jitendrakumar-vv8ho DP is very difficult, but dont give up. Keep practicing, and focus not on coding but solving the problem on paper, or at least understanding how to solve it more
This is a thank you message to Neetcode ✨
I'm really glad I found your channel. I come from a non-CS background and I finally got into the 'FAANG' list, and a major contribution goes to you. I understood the whole concept of Trees and intervals only because of your videos buddy, thank you so much for all the work you've been doing 🖤
(I know getting into FAANG may not be that great of an achievement for everyone out there, but coming from a background where you didn't have any exposure to tech, it's a huge deal for me)
Wow! Congrats! Amazon?
@@pelusemua8425 yeah lol
Thanks :)
That's great, congrats!!! Your hard work paid off!!🎉
@@NeetCode thank you! Keep up the great work man
Congrats! May I ask how long you've been doing leetcode for?
this really helped get a broader picture on what I need to learn. I'm self-taught which makes it really difficult going through these interviews. Like what is recursion? I never used! But your channel has helped me learn so much, so thanks!
This is a great list - having done a whole bunch of the blind 75 ones, I can definitely see that mastering the application of all of these here allows you to basically solve all common problems.
Also dynamic programming is totally overrated cos in a real SWE job I can imagine the number of times you actually use it is like...0.01%, if ever.
IMO if there is a better channel for coding interview prep it is not in this this world, this is IMO by far the best resource to prepare, everything well organized , excellent explanations and a lot more. Million thanks
I really recommend using whiteboard every time you make a technical challenge, specially in interviews, it shows you understood the problem and it makes you explain how you are designing the solution.
It also (for example) helped me get the best solution in the 375 - Guess Number Higher or Lower just by drawing the problem.
Never had a 0 milliseconds answer on a solution that I wrote on my own 😅
I totally agree with you! Those are the most frequent topics that show up in the coding interviews.
I'm currently pursuing mechanical engineering but lost interest in it a month ago and switched to coding. I'm in my 6th sem and just got finished with basic ds and am practising them at the moment. It's really a lot of pressure when you consider that there are people who have already learned what you are atm a good while back and are many steps ahead of you and you're competing against them.
I don't have a lot of time left but still I'm trying to do my best, and videos like these really help a lot. Thankyou so much
how's it going bro
As a self-taught this is very helpful. I still go over every concept possible but these videos help me focus more on certain ones, thank you!
Permutations and combinations would be a good topic to understand. It is easy to get confused about generating them and the different types
I've done quite a few Leetcode questions but these are the two I find these two topics the most difficult by a wide margin! Really struggle with these two.
I couldn't agree more with this list ! Honnestly, I really think once you get the hang of recursion/the recursion stack and why log(n) is pretty neat, then a lot of other things become much easier to grasp. Btw, I think nobody would mind if you beefed up that graph algorithm playlist a little more, it's totally jaleous of the DP playlist xD Like Vegeta is jaleous of Goku kinda thing
Just started interviewing this month for mid/"senior" level SWE roles again, so far the majority of problems have been sliding window in some shape or form.
Today I got some bit logic operations one that I totally bombed because I always forget which shifting to do for digits. Sigh.
I don't work at a major company, but where I work, we really only care that pointers don't confuse you and that you can do basic problem solving. Even with the bar so low, we rarely find anyone that fits.
I am so glad I found your channel few days ago. Purely gem of a content. I got hopes now to clear FAANG.
Update?
Hi neetcode! 2:56 Doing heapify costs O(n), but when we pop each element to get the minimum or maximum element (depends on maxHeap or minHeap), it will cost O(log n). It means the total generally will cost O(n log n) because we need log n to get the particular element for n size.
Heapify costs O(n), then popping the min/max element is O(log n). So the total is O(n + log n), which is still O(n).
Sliding Window is actually a Dynamic Programming technique. You start with the small subproblem and gradually progress towards larger subproblems by reusing the result of the previous ones until you get the final result.
No. You probably are saying that because of a particular problem in mind. It may not always be the case.
No.
Don't think so, I think so you probably have a question in mind.
Nah 👎
It is not Djikstra, it is Dijkstra :)
Thank you for the great video!
Time should really name you Person of the Year!! At the very least, you should be on the TIME 100: Most Influential People of 2022 - you've helped so many people! Thank you!
I did start to solve problems using BFS, DFS, Recursion in my dream lol since I began to prepare for my incoming Google interview. I hope I can pass it.
Good luck!
You are the best teacher for DSA and system design !
"I could have made this list longer but I like to be concise".
_Also includes DP, trees, graphs all under Recursion name_
When I started to prepare dor DSA 6 months ago, I only had a theoretical understanding of the concepts you've said here.
6 months in, now I've solved 150 questions and my understanding of all these concepts is pretty good.
You're a great resource dor coding interviews. Please do some videos on LLD also since that's more important than HLD for junior levels.
What is DSA dude
@@yippeeki-yeyDSA stands for data structures & algorithms
No words to say for your hardwork which is helping for coding interview 🙏
I started Dynamic PRogramming today. Thanks for saving me 😅 . Can you please let us know about GOOGLE? what type of DS & Algo is common in Google interview questions?
Wow ... This is an unexpected treat after 5-6 videos over last week !!! LOL .... You rock dude ! Thank you for this one. Since you mentioned - would definitely love your google interview experience and if it covered sys interview, would love videos on those topics. You are an awesome teacher !!!
Subjects asked in Google interview like OS, system design video pls,🙏
Coding only
@@Nick-uo2bi coding only?
@@Nick-uo2bi a
@@kirilivanov7677 yes
Even if he teaches everyone how to ace a “typical” FAANG technical interview, the result would be that they no longer act as an effective way to filter out candidates, and they would just change what they ask, rendering the “answers” useless for interviewing.
Your voice sounds so pleasant by the way 😀
It will be very beneficial if we can have a separate playlist for Hashmaps. It's particularly important for folks trying to prepare for data Science interviews- where python coding questions are typically not that hard but not easy as doing simple for loops.
nice one, please do a series for beginners who are just starting into this like a career path or something how they can start on this journey where to begin what to learn first and then move on to next step of solving algorithms etc don't think a beginner programmer can do/solve these problems without having solid understanding of OOPS / Loops / conditions basic data structures thankalot.
Heap-ify is still O(N) from a stream or uncertain N elements, if you do heappush N times. I think
Nice! Right to the point.
April ‘24 and this is still on point
Thank you so much for the video. This is very helpful. Is there a video where there in explanation of how each of these algorithms work ? Or are they explained in individual videos where you have solved questions that uses these concepts ?
Thank you for all you do! I appreciate it a lot! Can you do a video on your google interview experience? The concepts, level of difficulty and etc...? I'm a bit surprised you did not put Dynamic programming up there, for someone who just interviewed at Google, or is Google one of those companies trying to get rid of it? Thanks in advance!
Basically all the Data Structures. Awesome! 😅😅
Every topic / concept has its own share of easy, medium and hard problems. I dont get it why people are so afraid of dynamic programming. It is not as hard as people call it out to be. There are so many 2 pointer, heap, binary search problems which are waaay harder than DP. You will practice recursion anyway, you will practice DFS anyway. DP is just adding 1 more line to the recursive code (and ofcourse understanding what that line does).
Thanks for this list! I need to work on DFS/BFS and sliding window.
Thank you Neetcode
I'd like to go in each topic of these neat list creating a SIMPLEST application to the concept and growing with possibilities over that concept. (like: a simplest graph traversal, now with weights, now the graph is implicit..)
Thanks so much for curating this list! Can you please create a playlist for HashMap questions? Or may be make one video pointing to which problems can be considered as HashMaps.. I often get confused as to what HashMaps are esp in Python as Python has dictionary data structure and my mind always goes to this when talking about HashMaps. Thanks so much in advance!
Dictionary is a hash map
Hey neetcode, can you make a playlist for heap problems too?
I am completely agree with this list.
A little scared. I have my onsite with Google in a month and I've been told by other Google employees to study Dynamic Programming...
Great list! If there's one more to add, I would say Trees.
Ah, good to know that DP is not that important! I only did 100 DP problems, not that big of a deal 🥲
I have my Google onsite tomorrow, any tips to keep the tension under control?
Valium :-)
All the best 🙂, breathing exercises.
all is well, you will shine, good luck
@@NirmalSilwal thanks, that was so nice of you! Wish you all the best!
@@MrAkehtam thanks, that did actually help a bit ^_^
Hello, I just wanted to know if JavaScript a good option when it comes to solving problems or should I go with python or c# ?
Thanks a lot buddy... Very helpful ❤
Always awkward when an interviewer isn't aware of your proposed solution and its complexity and you need to spend several minutes to explain while time is working against you.
Agreed
@7:22 lol i believe the j is silent in djikstra's! also yes pls make a video on your experience interviewing at google. didn't you say that was your first full time interview?
That's because the surname is Dijkstra, not Djikstra ;)
Neetcode with yet another banger
Very helpful thanks neetcode you're the man!
I'm surprised you mentioned DP wasn't that common given you're at Google. I've heard Google asks DP a lot
Thank you!
Thanks for the overview! 6:33 FYI, that is pronounced "Dyke-strah."
Yeah i learned that eventually lol, after I recorded most of my videos unforunately lol
Why are dynamic programming questions banned/ discouraged?
What would you recommend if a heap problem comes up and we're using say JavaScript which doesn't have a built in heap type? Should we try and implement a heap on the fly or should we solve it less efficiently and just note we'd use a heap if a library were available?
We should use library. Only limited time of 45mins( at max ) is given per problem in a coding round. If the language doesn't have in built heap then switch the language.The interviewer wants to check how you can use existing Data structures to solve your problem efficiently.
@@amitpadaliya6916 I disagree. You can just as easily say "JS doesn't have this data structure, so I am going to assume it exists and solve the problem". They aren't testing your ability to create a data structure from scratch.
Thank you so much for these great videos. Are these 6 concepts also common in data science coding interviews?
Great video man keep up the good work
Thank you for this vid and all the other ones.
Have you done "CAPACITY TO SHIP PACKAGES WITHIN D DAYS" problem yet? Would love to see your tutorial on it.
That one is tough. I don't like the condition function for that problem, I think it's an implicit graph/dp problem so pretty hard. I had an easier time with 2187. Minimum Time to Complete Trips and KoKo eating banana problem.
@@1cannon3 yeah it is. It’s solvable with binary search but I still can’t wrap my head around it
Well explained
My favourite is hashmaps ❤
Can we get an update to this and maybe a walk through on these patterns on separate videos?
Bro always spot on
Do you why the companies are banned to ask DP questions?
In your interviews with Google did they ask you DP related questions?
Thank you Neet
Thank you! Neetcode. I always looking forward to your videos every day, and keep me motivated while grinding through the coding problems. Keep up the great work!
ps, thanks for the suggestion and the discount of AlgoMonster! :)
Great vid!
Google interview experience please
Please make a series of coding questions in Java with topic wise
th-cam.com/video/emNkJGwcusQ/w-d-xo.html
you mention dynamic programming isn't that common but it takes up a significant portion of leet75 problems.
My technical interview with a big oil company had 2D programming :(
2D DP?
Which leetcode question was it?
Can you make a video around Linked List using hadhmaps?
Great video!!!! 🙌🏼🙌🏼🙌🏼🙌🏼
Two Pointer and Sliding windows are they different?
But Respect++ for your content sir❤️
Yep
He meant that Sliding window uses 2 pointers, one that defines left bound of the window, and another one the right one.
Two Pointers Algorithm is when one pointer starts at first element, second on last, and there a target number.
If the sum of the numbers of both pointer is bigger than the target, move second pointer to the left. If it is smaller, move first pointer to the right.
And in result you'll get two numbers that will result in a target number when added.
Hi
May I ask what you are using to draw in this video.
for those who use js, what happen when you know the question needs heap? since there is no native heap implementation in JS?
What about greedy algos, do you see that alot?
I have seen dynamic programming problem in almost every oa and interviews I have got so far. Is this normal this year
Neet, I must say your drawing explanation helped me a lot to learn quickly. I followed most of your curated75 explanations to create a mind map of your drawing explanations. Will you please create a playlist for grokking-the-coding-interview's problems as well plus grokking-the-system-design-interview if possible. These courses are really very costly if we convert them to INR 🙃
Enjoying the content
sorry if out of topic. but is there any recommendation programming language that should we use in coding interview? like in my cases, i got familiar with javascript, is it okay if i do the coding interview with js? or should i learn java to do the interview?
Yeah js is enough... Programming language doesn't matter that much
tbh I don't really understand why people think dynamic programming is so hard. DP = recursion + memo tables, that's all it is; if you have a solid grasp of recursion then DP should feel quite natural
yeah, do share your Google experience 😀
i don't think best time to buy and sell stock is a sliding window, it can be solved using 1 question i think.
Hey just a quick question, are datastructures and algorithms problems(the ones asked on leetcode) useful in the long term for Software Engineers? Or are they only helpful in cases such as interviews? Thank you!
In the real world, someone much smarter than you already implemented these data structures and algorithms for you in a more efficient way than you could probably ever write. Many come in the standard library of the programming language that you need to work in or as an external lib you can include in your project. So implementing data structures and algorithms is usually reserved for specific needs when the out of the box solutions don't solve the problem for you. Most of the time you will just use these premade solutions to solve the problem in your app.
Knowing data structures and algorithms is essential because I'd say 50% of a software engineer's job is knowing when to apply which tool to solve a problem. That way you're not wasting time remaking the wheel in a probably more bug prone solution, but instead improving your productivity and providing a harder to break solution. Software engineering is all about recognizing patterns, when you know these patterns you can optimize your dev time and your solution, improve readability and shareability and so on. You will also know the trade offs of each tool so you know when it's better to apply a different tool than it might seem at first glance.
Depending on your project most of the time you're probably not gonna need anything besides the basics and to just know the API of the standard library of your programming language. You won't be solving complicated algorithmic problems most of the time either, most of the complexity will come from the architecture you're using and the business requirements of your project. Knowing how to reverse a binary tree might not help you there, but if you understand how to solve that kind of a complicated problem, then you can probably figure out how to solve whatever is the actual problem at hand because it demonstrates you're good at pattern recognition and breaking down problems into smaller divisible chunks that are easier to solve. Of course there is a lot more to the software engineering roles than just that, lots of communication and organizing skills are needed besides it among other things, but this is an easy way for interviewers to standardize the process to and filter out unwanted candidates. Remember, the interview isn't there to pick the best person for the job, it's to make sure you filter out all the undesirables.
how about for internship interviews?
I think Eulerian Circles belong to this list as well
how lmfao that is some niche topic inside graphs
This is helpful
why heapify time complexity is O(n) .
failed my Google onsite😭😭😭
Why did you fail? Where did you mess up?
There is always a morning after night. Don't worry
Keep it, strong brother. I am in the similar situation, and many times.
Which questions you got asked in your Google interview 🤔
Too bad I had a Google offer but didn't go last year.
You probably don't realize this but most videos are nowhere near the quality of yours because you always explain your thought process and draw it out. No other TH-camr does that and I have neve forgotten how to do a question if I watched your video.
Seems like coding interviews requires *heaps* of knowledge to pass ;)
What do you mean they banned it?
Some companies like Facebook supposedly banned their employees from asking DP questions in interviews.
I think you missed few more techniques:
1. Two Pointer
2. Prefix Sum
To be clear for anyone else not wanting to waste time, this video is just a lot of talk and almost no coding.
If you're expecting to see code examples, don't waste your time with this video.
*I mean, anyone with common sense can tell by raising the title*