Learn how to find single source shortest path in a weighted directed acyclic graph (DAG) in linear time. We explain…
Find the Shortest Path in an Undirected Graph from a source to every other node when every edge costs 1.…
Learn a one-pass way to check if array is sorted in non-decreasing order. Intuition, commented Python code, dry run, and…
Need the second smallest and second largest in one array? We compare a clear two-pass “better” method with a one-pass…
Quick Sort is a popular sorting algorithm that follows a divide-and-conquer approach. When implemented well, Quick Sort can be extremely…
Merge Sort is a classic divide-and-conquer sorting technique. It divides the list into two halves, sorts each half recursively, and…
Master insertion sort step by step. See how each element “inserts” into its correct place, watch a detailed dry run,…
Learn how to list all “eventual safe” nodes in a directed graph. We use DFS with path-tracking to spot cycles…
We flip the graph, run Kahn’s topological BFS, and list every node guaranteed to avoid cycles. Includes clear intuition, step-by-step…
Check if you can finish every course when some need to be done first. We build the course graph, run…