73 items
Broken Memoization in Fibonacci
Code QuizBig-O Time/Space Trade-offs
QuizBig-O Time & Space Trade-offs
Slides / VideoTime/Space Trade-offs in Big-O Analysis
FlashcardFinding Duplicates and Big-O
Code QuizNested Loop Time & Space Complexity
QuizOff-by-One in Duplicate Check
Code QuizBig-O of a Simple Loop
QuizBig-O Notation Basics
Slides / VideoBig-O Notation Basics
FlashcardBig-O for Time and Space
Slides / VideoBig-O Time & Space Basics
FlashcardLinearithmic Time O(n log n)
FlashcardBig-Omega Notation
FlashcardComplexity of a Single Loop
QuizSequential Code Blocks
QuizLinearithmic Time O(n log n)
QuizExponential Time O(2^n)
QuizOrdering Complexity Classes
QuizCounting Basic Operations
QuizDropping Constants
QuizDropping Lower-Order Terms
QuizComplexity of Nested Loops
QuizInput Size Drives Complexity
QuizHow Runtime Scales
QuizConstant Time O(1)
QuizLinear Time O(n)
QuizLogarithmic Time O(log n)
QuizQuadratic Time O(n^2)
QuizWhat Complexity Analysis Is and Why It Matters
Slides / VideoUsing Complexity to Compare Algorithms
Slides / VideoBest, Average, and Worst Case
Slides / VideoSpace Complexity Basics
Slides / VideoAnalyzing Nested Loops for Time Complexity
Slides / VideoAnalyzing Simple Loops for Time Complexity
Slides / VideoDropping Constants and Lower-Order Terms
Slides / VideoRanking Common Complexity Classes
Slides / VideoConstant Time Array Access
Code QuizSingle Loop Linear Time
Code QuizOrdering Growth Rates
Code QuizLoop With Doubling Step
Code QuizWorst Case Of Linear Search
Code QuizSpace Complexity Of Copy
Code QuizTwo Input Variables
Code QuizSumming Sequential Loops
Code QuizDropping Constants In Big-O
Code QuizSort Then Loop Complexity
Code QuizHalving Loop Logarithmic Time
Code QuizNested Loops Quadratic Time
Code QuizCommon Big-O Complexity Classes
Slides / VideoBig-O as an Upper Bound
Slides / VideoDefinition and Intuition of Big-O Notation
Slides / VideoBest, Average, and Worst Case
FlashcardFactorial Time O(n!)
FlashcardAuxiliary Space vs Total Space
FlashcardComplexity of Nested Loops
FlashcardDropping Lower-Order Terms
FlashcardQuadratic Time O(n^2)
FlashcardLogarithmic Time O(log n)
FlashcardConstant Time O(1)
FlashcardComplexity of Single Loops
FlashcardBig-O Formal Notation and Meaning
FlashcardLinear Time O(n)
FlashcardCounting Operations
FlashcardExponential Time O(2^n)
FlashcardDropping Constants in Big-O
FlashcardComparing Growth Rates
FlashcardSequential Statements (Addition)
FlashcardBig-Theta Notation
FlashcardWhy We Focus on Worst Case
FlashcardHow Runtime Grows as Input Grows
Slides / VideoInput Size n: The Basis of Analysis
Slides / VideoCounting Operations to Estimate Cost
Slides / VideoBroken Memoization in Fibonacci
A memoized Fibonacci that secretly stays exponential due to a missing argument.
function fib(n, memo = {}) {
if (n <= 1) return n;
if (memo[n] !== undefined) return memo[n];
// intended: O(n) time via memoization
memo[n] = fib(n - 1) + fib(n - 2);
return memo[n];
}
console.log(fib(45));This function is meant to run in O(n) time via memoization, but it still runs in exponential time. What is the bug?