1/14
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Computational Complexity Problems
These problems involve analyzing the resources (time and space) required by algorithms to solve certain tasks. The focus is on classifying problems as easy, hard, or intractable based on their complexity. The most well-known measure of complexity is Big O notation.
Data Structures Problems
These problems revolve around selecting and implementing appropriate data structures (like arrays, linked lists, trees, graphs, hash tables) to efficiently solve various computational tasks.
Graph Problems
Graph theory is fundamental to many computer science applications. Problems related to graphs include shortest path algorithms, graph connectivity, network flow, and spanning tree algorithms.
String Problems
These problems involve manipulating and analyzing strings, such as searching for patterns, text matching, and string editing operations.
Dynamic Programming Problems
Dynamic programming involves solving complex problems by breaking them down into smaller subproblems and storing solutions to avoid redundant calculations. Examples include the knapsack problem, longest common subsequence, and matrix chain multiplication.
Greedy Problems
Greedy algorithms make locally optimal choices at each step to achieve a global optimal solution. Problems in this category include the coin change problem and Huffman coding.
Backtracking Problem
Backtracking involves systematically trying different solutions until a valid one is found. Problems like the N-Queens problem and generating permutations/combinations fall into this category.
Divide and Conquer Problems
This approach breaks a problem into smaller subproblems, solves them recursively, and combines their solutions to solve the original problem. Classic examples include merge sort and the closest pair of points problem.
Simulation and Modeling Problem
These problems involve simulating real-world processes or systems to gain insights or make predictions. Examples include traffic simulations, weather forecasting, and game physics engines.
Numerical Problems
These problems involve numerical computations and optimizations. Examples include finding roots of equations, numerical integration, and solving linear programming problems.
Geometric Problems
Geometric algorithms deal with solving problems related to shapes and spaces. Examples include convex hull algorithms and line intersection problems
Parallel and Distributed Computing Problems
These problems address challenges related to efficiently utilizing multiple processors or machines for computation.
Machine Learning and AI Problems
Problems in this category involve creating models and algorithms that can learn patterns from data, make predictions, or perform tasks like image recognition and natural language processing.
Cryptography and Security Problems
These problems relate to ensuring data confidentiality, integrity, and authentication, as well as developing secure cryptographic algorithms.