Mastering Dynamic Programming - A Real-Life Problem (Part 2)

Mastering Dynamic Programming - A Real-Life Problem (Part 2)

54.904 Lượt nghe
Mastering Dynamic Programming - A Real-Life Problem (Part 2)
🎬 Mastering Dynamic Programming: Part 2 - Let's Solve a Real-Life Problem 🎬 In the previous video, I talked about the basics of dynamic programming. I often get comments how dynamic programming is not useful in real-life. While it's true that most people don't use it on a daily basis, it's wrong to diminish its value. Most of us use software that is uses dynamic programming to some extent on a daily basis, we just forget, or maybe we are not even aware of it. This is why I want to talk about two real life problems. In this video, I will walk you through the fundamentals of the Git Diffing algorithm used to find differences between two files. It is based on the Longest Common Subsequence, which is well-known algorithm in dynamic programming. 🔑 Key Takeaways: 📌 Learning about real-life use-cases 📌 Understanding the fundamental principles behind Git Diffing Algorithm 📌 Understanding the Longest Common Subsequene Algorithm 📌 A step-by-step explanation of how to find the LCS, not just its length. Dynamic programming is like a puzzle-solving technique, and this video is your ultimate guide to fitting the pieces together. Get ready to elevate your coding skills and witness the art of optimization in action. 🚀 If you found this video helpful, don't forget to like, share, and subscribe for more tech tutorials! 🔗 If you enjoy trhis video, please like, share, and subscribe for more enlightening tutorials. Join the dynamic programming journey today! Useful links and resources: Source code: https://github.com/freezing/data-structures-and-algorithms/tree/main/dynamic_programming/lcs Myers Algorithm: http://www.xmailserver.org/diff2.pdf Introduction to Algorithms by Cormen (affiliate link): https://www.amazon.co.uk/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X?&_encoding=UTF8&tag=techwithnikol-21&linkCode=ur2&linkId=2b7bc631b93cc352839ef2d692a2c7e9&camp=1634&creative=6738 🔗 Connect with me: Support me on patreon: https://www.patreon.com/TechWithNikola LinkedIn: https://www.linkedin.com/in/nikola-stojiljkovic-67a91931/ Join my discord: https://discord.gg/p9trmEVeaZ Visit my blog: https://techwithnikola.com Follow me on Instagram: https://www.instagram.com/techwithnikola/ Follow me on Twitter / X: https://twitter.com/techwithnikola Follow me on Medium: https://medium.com/@techwithnikola Timecodes: 00:00 - Intro 00:57 - Longest Common Subsequence Problem 03:12 - Greedy Approach 04:10 - Dynamic Programming Approach 09:14 - LCS DP Implementation 10:18 - LCS Reconstruction Idea 11:40 - LCS Reconstruction Implementation 12:46 - Text Diff Idea 14:50 - Outro