
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
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
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
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
Tech With Nikola
Welcome to my channel! My name is Nikola and I am a software engineer with over 10 years of experience in the field.
I have a strong passion for technology and am constantly seeking to learn and explore new technologies and techniques. I believe that the...