These are targeted data manipulation strategies used to handle arrays, strings, and linked lists efficiently.
- Two Pointers: Uses two reference pointers to iterate through a data structure simultaneously, typically from opposite ends or at different speeds (Fast & Slow pointers).
- Sliding Window: Maintains a subset of data (a "window") over a sequential structure to track running statistics without recalculating the whole set.
- Prefix Sum: Pre-computes and stores cumulative sums of an array to allow for \(O(1)\) constant-time range sum queries.
- Dynamic Programming (DP): Dynamic programming is an optimization technique used to solve problems by breaking them down into simpler subproblems and storing the results of these subproblems to avoid redundant computations. It is particularly effective for problems exhibiting overlapping subproblems and optimal substructure.
- Greedy Algorithm
- Breadth-First Search (BFS) / Depth-First Search (DFS): Systematic graph and tree traversal methods used to explore neighbor nodes layer-by-layer (BFS) or dive deep down a path before retreating (DFS).
1. Binary Search (good for sorted set)
2. Depth first search3. Breadth first seach
4. Dijkstra
Sorting
1. Bubble sort
2. Quick sort
3. Insertion
4. Selection
5. Heap
----------------------------
Dynamic Programming Questions
1. Fibonacci Sequence
Problem: Calculate the nth Fibonacci number.
2.
Comments
Post a Comment