šŸŽ’
Technical Interview Study Guide
  • šŸ•Welcome!
  • šŸ„Getting Started
    • Study Plan
    • Optimizing Revision
    • Summer 2024 Timeline
    • FAQs
  • 🄨Algorithms
    • Binary Search
    • Sorting
    • Recursion
    • Graph
    • Quick Select
    • Intervals
    • Binary
    • Geometry
    • Dynamic Programming
  • šŸ„žData Structures
    • Arrays
      • Matrices
    • Strings
    • Linked Lists
      • Doubly Linked Lists
    • Hash Tables
    • Graphs
      • Trees
        • Binary Search Trees
        • Heaps
        • Tries
        • Segment Trees
    • Stacks
    • Queues
      • Double Ended Queues
    • Union-Find Disjoint Set (UFDS)
  • šŸ”Problems Guide
    • Dynamic Programming Roadmap
      • Warmup
        • Climbing Stairs
        • Nth Tribonacci Number
        • Perfect Squares
      • Linear Sequence
        • Min Cost to Climb Stairs
        • Minimum Time to Make Rope Colorful
        • House Robber
        • Decode Ways
        • Minimum Cost for Tickets
        • Solving Questions with Brainpower
  • šŸ£Other Technical Topics
    • General Problem Solving
    • Runtime Predictions
    • System Design
      • SQL
      • Accessing APIs
    • Operating Systems
  • šŸæNon-technical Topics
    • Behavioral Interviews
    • Resumes
Powered by GitBook
On this page
  1. Problems Guide
  2. Dynamic Programming Roadmap
  3. Warmup

Nth Tribonacci Number

This problem is basically Climbing Stairs but using three states instead.

Bottom-up

dp(m)={0,m=01,m=11,m=2dp(māˆ’2)+dp(māˆ’1)+dp(m)dp(m) = \begin{cases} 0, m = 0\\ 1, m = 1\\ 1, m = 2\\ dp(m-2) + dp(m - 1) + dp(m) \end{cases}dp(m)=āŽ©āŽØāŽ§ā€‹0,m=01,m=11,m=2dp(māˆ’2)+dp(māˆ’1)+dp(m)​

As discussed in Climbing Stairs, since we only rely on the past 3 states, we can use nnn state caching and store them as variables instead.

def tribonacci(n):
    if n == 0: return 0 # base case
    t0, t1, t2 = 0, 1, 1
    for i in range(3, n + 1):
        t0, t1, t2 = t1, t2, t0 + t1 + t2
    return t2
PreviousClimbing StairsNextPerfect Squares

Last updated 1 year ago

šŸ”