dsaOverview

Notes, code templates, and LeetCode problems, organized by topic. Each topic page has the concepts, links to code templates (C, Java, JavaScript, Python), and a table of practice problems.

TopicCovers
Arrays and StringsStatic/dynamic arrays, prefix sums, two pointers, sliding window, Kadane, intervals, greedy
Linked ListsSingly/doubly linked lists, fast and slow pointers, in-place reversal
Stacks and QueuesStack, queue, deque, monotonic stack
HashingHash sets and maps, collisions, implementation
Sorting and SearchingInsertion, merge, quick, bucket sort, binary search
Recursion and BacktrackingRecursion basics, tree maze, subsets, combinations, permutations
TreesBinary trees, BST, traversals, DFS/BFS, tries, segment trees, balanced trees
HeapsPriority queues, push/pop, heapify, top-K, two heaps
GraphsRepresentations, matrix/graph DFS and BFS, Dijkstra, MST, topological sort, union-find
Dynamic Programming1D/2D DP, knapsack, LCS, pattern catalogue
Bit ManipulationBitwise operators and tricks
Big-O and InterviewComplexity cheatsheet, flowchart, interview stages

Also see problem-solving patterns for recognition signals across topics, and the CMU lectures.