Learning to Pass: Visuele Voorbereiding op Google-interviews
Voorbeeldopgave: Two Sum (Gemakkelijk)
Gegeven een array van gehele getallen nums en een geheel getal target, return de indices van de twee getallen die samen optellen tot target.
- Voorwaarde: Elke invoer heeft precies één oplossing. Je mag hetzelfde element niet twee keer gebruiken.
- Tijdscomplexiteit: O(n)
- Ruimtecomplexiteit: O(n)
Leerpad en Onderwerpen
Het leerpad is opgebouwd als een 'skill tree', waarbij concepten in de juiste volgorde worden geleerd met in kaart gebrachte vereisten.
Datastructuren
- Arrays & Strings (Beginner)
- Focus: two-pointer
- Gemiddelde tijd: O(n) | Ruimte: O(1)
- Linked Lists (Gemakkelijk)
- Focus: singly linked lists
- Gemiddelde tijd: O(n) | Ruimte: O(1)
- Stacks & Queues (Gemakkelijk)
- Focus: LIFO (push/pop)
- Gemiddelde tijd: O(1) | Ruimte: O(n)
- Hash Tables (Gemakkelijk)
- Focus: chaining
- Gemiddelde tijd: O(1) | Ruimte: O(n)
- Binary Trees (Gemiddeld)
- Focus: BST (left < parent < right)
- Gemiddelde tijd: O(log n) | Ruimte: O(h)
- Graphs (Gevorderd)
- Focus: directed + undirected edges
- Gemiddelde tijd: O(V + E) | Ruimte: O(V + E)
- Heaps / Priority Queues (Gemiddeld)
- Focus: min-heap (bubble up)
- Gemiddelde tijd: O(log n) | Ruimte: O(n)
- Tries (Gevorderd)
- Gemiddelde tijd: O(m) | Ruimte: O(n * m)
Algoritmen
- Sorting (Gemakkelijk)
- Focus: comparison sort (swap)
- Gemiddelde tijd: O(n log n) | Ruimte: O(log n)
- Binary Search (Gemakkelijk)
- Focus: O(log n) search
- Gemiddelde tijd: O(log n) | Ruimte: O(1)
- Recursion & Backtracking (Gemiddeld)
- Focus: call tree / backtracking
- Gemiddelde tijd: O(2^n) | Ruimte: O(n)
- Dynamic Programming (Expert)
- Focus: bottom-up memoization
- Gemiddelde tijd: O(n^2) | Ruimte: O(n)
- BFS & DFS (Gemiddeld)
- Focus: BFS/DFS traversal
- Gemiddelde tijd: O(V + E) | Ruimte: O(V)
- Greedy Algorithms (Gemiddeld)
- Focus: coin change greedy (locally optimal)
- Gemiddelde tijd: O(n log n) | Ruimte: O(1)
Concepten
- Big-O Notation (Beginner)
- Focus: input size (n), tijdcomplexiteit (O(n²), O(n), O(log n), O(1))
- Gemiddelde tijd: N/A | Ruimte: N/A
- System Design Basics (Gevorderd)
- Focus: client - LB - servers - DB (LoadBalancer, Server, DB, Cache)
- Gemiddelde tijd: O(1) | Ruimte: O(n)
Groetjes,