Explore tens of thousands of sets crafted by our community.
Algorithmic Problem Patterns
10
Flashcards
0/10
Dynamic Programming
Store the results of subproblems to avoid redundant computations, often using a table.
String Matching
Find occurrences of a substring within a string using algorithms like Knuth-Morris-Pratt or Rabin-Karp.
Search Algorithms
Find an element within a data structure, commonly using linear search or binary search.
Greedy Algorithms
Build up a solution piece by piece by choosing the best option at each step, without revisiting previous decisions.
Backtracking
Explore all potential solutions in a systematic way and backtrack as soon as it becomes clear that a path does not lead to a solution.
Network Flow
Model a system as a network seeking to find the maximum flow from the source to sink, often using Ford-Fulkerson algorithm or Edmonds-Karp algorithm.
Recursion
Solve a problem by expressing its solution in terms of smaller instances of the same problem.
Divide and Conquer
Break the problem down into smaller subproblems of the same type and solve these subproblems recursively.
Graph Traversal
Explore a graph either using depth-first search (DFS) or breadth-first search (BFS) to visit nodes.
Sorting Algorithms
Organize data in a certain order using various techniques like quicksort, mergesort, or heapsort.
© Hypatia.Tech. 2024 All rights reserved.