PokeVideoPlayer v23.9-app.js-020924_
0143ab93_videojs8_1563605 licensed under gpl3-or-later
Views : 87,926
Genre: Education
Uploaded At Oct 8, 2024 ^^
warning: returnyoutubedislikes may not be accurate, this is just an estiment ehe :3
Rating : 4.893 (172/6,234 LTDR)
97.32% of the users lieked the video!!
2.68% of the users dislieked the video!!
User score: 95.98- Overwhelmingly Positive
RYD date created : 2024-11-20T17:58:45.314835Z
See in json
Top Comments of this video!! :3
As usual there is some kind of problem with this video, and this time it is a misunderstanding of just how much is covered by dynamic programming.
What is shown here only works for taking an algorithm that works slowly normally and then slowly turning it into a dynamic programming version of itself, which can help a lot with its performance.
What it is missing is that dynamic programming is a design technique for algorithms in a more general sense, and not all such algorithms comes from such a conversion, and some of them would not even have a corrisponding recursive form. An example of the latter is Dijkstra's shortest path algorithm, where you successively add the node the shortest away from those already noted, by looking at the neighbourhood of nodes already added, basically the outgoing edges. That algorithm requires that you know which of such edges are next, but if you build it in a recursive form you would generally not be able to find it, and if you try to find it you will typically end up by constructing Dijkstras again, but just from the distination to the start instead.
What you acutally want to do in an interview is look for the kind of properties that enables it to be well solved with dynamic programming, and then talk about those properties and how you could exploit them to design a dynamic programming algorithm for just that problem. Actually writting out the code is usually not that valuable in an interview, whereas what you really want to do is show your knowledge and skill in problem solving, and that can be done well by describing the mental steps you go through to design a solution rather than write it down. That will be much quicker and as such will allow you to talk about many more possible solutions and their possible pros and cons, rather than get stuck with a single one and spendt time doing live coding, which everyone knows has high risk involved. Making 4 successing versions as described in this video compounds that risk of live coding by needing you to write a lot of lines of code.
All of this assumes that you actually have the knowledge and skills necessary, but if you do not really understand dynamic programming and it being shown fairly would be a detriment to you, then the technique shown here can help you by giving you an easy template to include some dynamic programming without requiring that good knowledge of it.
62 |
what's the point of option 3 ?
its the same time complexity as 2, but practically it probably slightly slower with o(n) space complexity.
1. is textbook trivial, but completely useless for anything practical.
2. is very elegant IMHO, since its still nearly textbook trivial but as fast and efficient as any other solution.
4. is pretty optimal and quite elegant.
what's the point of 3 ?
|
I hate coding exams. Ive coded for 25 years. I took a "no-experience required" programming test and they told me I failed. They lied. Every edge case was accounted for, their internal compiler said it all passed before I submit the code. Why go through all the pressure when they will just sift you anyway? The next time someone asks me to do a coding interview I'm going to refuse and tell them if they want my skills they can pay for them. If they want to just process coders like meat, they can take an intern.
|
@GregHogg
1 month ago
Master dynamic programming and all data structures and algorithms for FREE at algomap.io/ :)
4 |