Unit
Data Structure and Algorithm IV
Graph
Graph Algorithm
Dynamic Programming
Duration
6 weeks
Introduction
Welcome to Data Structures and Algorithms IV. This unit covers two powerful problem-solving techniques: graph algorithms and dynamic programming. You'll learn how to break down complex problems into simpler parts and build efficient solutions step by step. Through practice with carefully selected LeetCode questions, you'll develop the skills to recognize common patterns, implement key algorithms, and optimize your code. These techniques are essential for technical interviews at top tech companies and will help you solve challenging programming problems in your career.
Prerequisites
- Complete Data Structure and Algorithm III Unit.
Skills Covered
In this unit, we are going to cover the following topics.
- Graphs: Master traversals (DFS/BFS), shortest-path (Dijkstra’s, Bellman-Ford), MSTs (Prim’s, Kruskal’s), topological sorting, and Union-Find for dynamic connectivity.
- Dynamic Programming: Design optimal substructures (memoization/tabulation) for knapsack, string edits, and sequence alignment.
Recommended Study Material
Learn the basic of Graph data structure and its representation.
Graph
Data Structure
Duration:
10 minutes
Learn to use breath first search and its implementation.
Graph
Algorithm
Duration:
30 minutes
Learn to use breath first search and its implementation.
Graph
Algorithm
Duration:
30 minutes
Learn about Topological sort and its implementation.
Graph
Algorithm
Sorting
Duration:
1 hour
Learn to find single source shortest path using Dijkstra algorithm.
Graph
Algorithm
Duration:
1 hour
Learn to find single source shortest path using Dijkstra algorithm.
Graph
Algorithm
Duration:
1 hour
Learn to find minimum spannig tree using Prim’s algorithm.
Graph
Algorithm
Duration:
1 hour
Learn to find minimum spannig tree using Kruskal’s algorithm.
Graph
Algorithm
Duration:
30 minutes
Design disjoint sets which supports makeSet, union and findSet operations.
Graph
Algorithm
Duration:
1 hour
Learn the basics of memoization and dynamic programming.
Dynamic Programming
Duration:
30 minutes
Practice Problems
Credit
The problem set is carefully curated from Neetcode and AlgoMaster, supplemented with additional practice questions for comprehensive coverage.
Contributor(s)
John Doe
Founder and Fullstack Developer at freeCodeProject.org
Created this Unit with curated list of questions for practice.