Bornat Visualizer
AlgorithmsData StructuresNeural NetPracticePlaygroundCompareDocs

Dynamic Programming

Memoization tables and optimal substructure — watch subproblems fill in real time.

7 visualizations

Compare

Fibonacci — Memoization

Computes Fibonacci with top-down memoization, caching each subproblem so it's solved only once.

Beginnerdynamic programmingmemoization

0/1 Knapsack

Maximizes value under a weight limit where each item is taken whole or not at all, via a DP table.

Intermediatedynamic programmingtabulation

Longest Common Subsequence

Finds the longest subsequence common to two strings by filling a 2-D DP table, then tracing it back.

Intermediatedynamic programmingstrings

Edit Distance (Levenshtein)

Computes the minimum number of insertions, deletions, and substitutions to transform one string into another.

Intermediatedynamic programmingstrings

Coin Change (Minimum Coins)

Finds the fewest coins that sum to a target amount, allowing each denomination to be reused any number of times.

Intermediatedynamic programmingunbounded knapsack

Maximum Subarray (Kadane's)

Finds the contiguous subarray with the largest sum in a single linear pass using Kadane's algorithm.

Beginnerdynamic programmingkadane

Longest Increasing Subsequence

Finds the longest strictly increasing subsequence via an O(n²) DP, tracking predecessors to rebuild the chain.

Intermediatedynamic programmingsubsequence
Bornat Data Structure Visualizer

Learn, visualize, experiment, and master data structures & algorithms with fully interactive, step-by-step animations.

Made with by Jibreel Bornat

Computer Engineering — Birzeit University

Explore

  • Sorting
  • Searching
  • Linked Lists
  • Stacks & Queues
  • Hashing
  • Trees
  • Graphs

App

  • All Algorithms
  • Practice
  • Playground
  • Documentation
  • About
  • Settings
Bornat Data Structure Visualizer© All Rights Reserved