- This course assumes you have the basic knowlege in algorithms and data structures and also familiar with one of the programming languages.
- Good lectures for preparing for the technical interviews for Software Engineers, Data Scientists and Machine Learning Engineers.
- Covers all the fundamental algorithms including divide and conquer, randomized algorithms, greedy algorithm and dynamic programming. Covers most of the advanced data structures including graph, binary trees, heaps, hashtables, union and find. Lacks the introduction of basic data structures such as arrays, strings, linked lists.
- Focuses more on the graph problems, such as shortest path and graph search using BFS and DFS.
- Introduces big-Oh notation (very important in technical interviews) and NP-complete problems. A lot of proofs on the correctness and running time of the algorithm.
- Python 3
- Karatuba Multiplication
- Merge Sort
- Finding Closet Pair
- Counting Inversions
- Quick Sort
- Quick Select
- Karger MinCut (Randomized Contraction)
- Korasaju's algorithm to compute strongly connected components
- Dijkstra's algorithm (single source shortest path)
- Finding medians using heaps
- 2Sum using Hashtable
- Binary search tree
- BFS on graph
- GFS on graph