01IntroductionData structures and algorithms are a common topic in coding interviews1 min
02PrerequisitesBasic programming knowledge is required to follow along1 min
03Big O Notation and Constant TimeBig O notation describes the performance and scalability of an algorithm4 min
04Linear Time ComplexityLinear time complexity O(n) grows in direct proportion to the input size2 min
05Linear Time with Multiple InputsIterating over two separate inputs results in O(n + m) complexity1 min
06Quadratic, Cubic, Logarithmic, and Exponential TimeNested loops create quadratic O(n^2) or cubic O(n^3) complexity6 min
07Space ComplexitySpace complexity measures the amount of memory an algorithm requires relative to input size2 min
08Course PromotionoptionalThe speaker offers a full 13-hour course on data structures and algorithms1 min
09Arrays: Theory and Java SyntaxArrays store items sequentially in memory, enabling O(1) access by index7 min
10Building a Dynamic Array: Insert and ResizeA custom array class can track item count and insert elements at the end11 min
11Building a Dynamic Array: Remove and SearchRemoving an element requires shifting subsequent elements to the left to fill the gap7 min
12Java Built-in Dynamic ArraysJava provides ArrayList and Vector classes for dynamic arrays4 min
13Linked Lists: Structure and DeletionLinked lists consist of nodes that hold data and a reference to the next node5 min
14Java Linked Lists SyntaxThe Java LinkedList class supports adding and removing items from both ends2 min