- dynamic_programming is mainly optimization over recursion.
- overlapping_subproblems

- Bellman_Ford_algorithmshortest_path
- Floyd_Warshell_algorithmshortest_path
- resource_allocation_problemknapsack
Greedy approach
- greedy_approach

- Assumption forDijkstras_algorithm The direct node will always be shorter, then connecting nodes.

- Limited set of problems where the above condition applies.
- backtracking is for problems where you need to generate everypermutation and if any point the solution is failing then switch to next one.