Problem library.
Every problem is a purpose-built interactive animation — not a generic step-through. Search, filter by pattern, or just browse.
All problems
16 of 16Angle Between Hands of a Clock
Calculate the smaller angle formed by the clock hands.
Create Binary Tree From Descriptions
Construct a binary tree from parent-child relationships.
Dijkstra's Algorithm
Find shortest paths from a source node in a weighted graph.
Edit Distance
Compute the minimum operations needed to transform one string into another.
Hamming Distance
Count the differing bit positions between two integers.
Maximum Total Subarray Value II
Select exactly k subarrays to maximize the total contribution of max minus min values.
Number of Ways to Assign Edge Weights I
Count valid assignments of weights on tree edges under given constraints.
Number of ZigZag Arrays I
Count the total number of valid ZigZag arrays of length n using values in the range [l, r], where no two adjacent elements are equal and no three consecutive elements form a strictly increasing or decreasing sequence.
Number of ZigZag Arrays II
Count the total number of valid ZigZag arrays of length n using values in the range [l, r], where no two adjacent elements are equal and no three consecutive elements form a strictly increasing or decreasing sequence.
Process String with Special Operations I
Apply special editing operations to transform a string step by step.
Rotate Image
Rotate an NxN matrix by 90 degrees in-place.
Substring with Concatenation of All Words
Find all starting indices where a substring contains all words exactly once.
Weighted Word Mapping
Build mappings between words while maximizing weighted relationships.
Missing a problem?
Add the animation.
Each visualization is self-contained. Drop your component in the right folder, add one entry to PROBLEMS above, and open a PR.