DSA, end to end
Twenty-two classes from a first loop to a segment tree. Every structure built from the one below it, and every complexity argued rather than quoted.
22 videos
Watch in order

01C++ for problem solving: enough of the language to compete
10:50

02Loops and pattern printing: the discipline before the algorithms
10:03

03Arrays and 2D arrays: contiguous memory, and why it is fast
10:46

04Strings: an array with opinions
11:31

05Sorting and searching: the two operations everything else is built on
10:58

06Pointers and references: pass by value, by reference, and by address
11:17

07Time and space complexity: counting without counting
10:40

08Sets and maps: the hash table, and the tree that keeps order
10:40

09Prefix sums, sliding windows, and contribution counting
10:37

10Bit manipulation: the integer as an array of booleans
10:41

11Number theory basics: divisibility, primes, and modular arithmetic
10:53
12Recursion and backtracking: trusting the smaller problem
10:35

13Two pointers: one pass instead of two loops
10:14

14Linked lists: pointers as a data structure
10:17

15Stacks, queues and deques: order as a data structure
10:27

16Binary trees and binary search trees: recursion with a shape
10:40

17Priority queues and heaps: the smallest thing, fast
10:21

18Tries: the tree where the path is the key
10:01

19Greedy: when the locally best choice is provably the globally best
10:31

20Dynamic programming: recursion with the answers written down
10:46

21Graphs: the structure most problems turn out to be
10:43

22Segment trees and ordered sets: range queries that keep up with updates
10:21