Algorithm
Why another algorithm tutorial ?
Numerous implementations of popular algorithms abound across various online platforms and blogs. While these resources serve their purpose well, my intention is not to supplant them. Rather, I recognize that for novice programmers, comprehension often comes more readily through visual aids such as videos rather than through traditional written materials.
While existing resources excel at teaching algorithms, few focus on techniques for long-term retention and efficient recall. Additionally, the ability to confidently discern problem-solving patterns is crucial. My aim is not to overwhelm with a plethora of algorithms, but rather to provide concise notes and visual aids for key algorithms, facilitating rapid review.
All diagrams presented herein are original creations, meticulously designed to enhance comprehension and recall. Crafting these aids required considerable effort, and I kindly request attribution if this content is reproduced elsewhere.
- Two Pointers
- Binary Search
-
Sliding Window
- Longest Substring Without Repeating Characters (Classic Sliding Window Problem)
- Find Maximum in Sliding Window
- Minimum Window Substring
- Longest Repeating Character Replacement
- Linked List
-
Tree
- Balanced Binary Tree
- Count Good Nodes in Binary Tree
- Merge Two Binary Trees
- Convert Sorted Array to Binary Search Tree
- Validate Binary Search Tree
- Sum Root to Leaf Numbers
- Binary Tree Right Side View
- Kth Smallest Element in a BST
- Diameter of a Binary Tree
- Construct Binary Tree from PreOrder and InOrder Traversal
- Same Tree
- Serialize and Deserialize Binary Tree
- Trim a Binary Search Tree
- Path Sum
- Binary Tree Maximum Path Sum
- Flatten Binary Tree to Linked List
- Graph
- Matrices
- Others
- Backtracking
- Greedy Techniques
- Dynamic Programming