
Articles
Algorithms
Algorithms are the repeatable problem‑solving patterns we use when brute force is no longer good enough. In web development they show up far beyond interview prep: searching, sorting, caching, scheduling, parsing, and state‑heavy UI logic all rely on algorithmic judgement. A lot of the articles here overlap with LeetCode, but the category is broader than that; it is about learning the techniques that make difficult problems easier to reason about in JavaScript and TypeScript.
Below you will find a subset of articles from my blog specifically about Algorithms. This is an area that I have worked with for many years, and have managed to write about quite a few times. There are thirty‑seven collected together for you below.

Backtracking Decision Trees: Solving 'Combination Sum'. 
Dynamic Programming in LeetCode: Solving 'Coin Change'. Dynamic Programming in LeetCode: Solving 'Coin Change'

LeetCode: Finding the Diameter of a Binary Tree. LeetCode: Finding the Diameter of a Binary Tree

Topological Sort: Solving the 'Course Schedule' Problem. Topological Sort: Solving the 'Course Schedule' Problem

Multi‑Source BFS: Solving the 'Rotting Oranges' Problem. Multi‑Source BFS: Solving the 'Rotting Oranges' Problem

Quickselect in TypeScript: Solving 'Kth Largest Element in an Array'. Quickselect in TypeScript: Solving 'Kth Largest Element in an Array'

Find Peak Element: Binary Search Without a Fully Sorted Array. Find Peak Element: Binary Search Without a Fully Sorted Array

Graph Traversal: Solving the 'Course Schedule' Problem. Graph Traversal: Solving the 'Course Schedule' Problem

Modified Binary Search: Solving 'Search in Rotated Sorted Array'. Modified Binary Search: Solving 'Search in Rotated Sorted Array'

LeetCode: Solving the 'Merge Two Sorted Lists' Problem. LeetCode: Solving the 'Merge Two Sorted Lists' Problem

Binary Search on the Answer: Solving 'Koko Eating Bananas'. Binary Search on the Answer: Solving 'Koko Eating Bananas'

Monotonic Stack: Solving the 'Daily Temperatures' Problem. Monotonic Stack: Solving the 'Daily Temperatures' Problem

Implementing a Trie in TypeScript: Solving 'Implement Trie (Prefix Tree)'. Implementing a Trie in TypeScript: Solving 'Implement Trie (Prefix Tree)'

Solving the LeetCode 'Binary Tree Zigzag Level Order Traversal' Problem. Solving the LeetCode 'Binary Tree Zigzag Level Order Traversal' Problem

Breadth‑First Search: Solving Binary Tree Level Order Traversal. Breadth‑First Search: Solving Binary Tree Level Order Traversal

Understanding the Backtracking Approach: Solving the 'Word Search' Problem. Understanding the Backtracking Approach: Solving the 'Word Search' Problem

Fast and Slow Pointers: Solving the 'Linked List Cycle' Problem. Fast and Slow Pointers: Solving the 'Linked List Cycle' Problem

Grid Traversal: Solving the 'Number of Islands' Problem. Grid Traversal: Solving the 'Number of Islands' Problem