Skip to content

Google

Software Engineering Interview Prep

Basic Data Structures

  • Arrays
  • Matrices
  • Hash Tables (Dictionaries)
  • Hash Sets (Sets)
  • Objects
  • Pointers
  • Trees
  • Stacks
  • Heaps
  • Queues

Algorithms

  • Basic Sorting
  • Fast Sorting (merge/quick)
  • Related Search
  • Divide and Conquer (Binary Search)
  • Dynamic Programming 1D
  • Dynamic Programming 2D
  • Greedy
  • Recursion
  • Dijkstra
  • A*
  • Computational Complexity/Big O

Concepts

  • Object Oriented Design
  • Object Oriented Programming

NP Complete ALgorithms

  • Travelling Salesman
  • Knapsack

Complex Data Structures

  • Singly Linked List
  • Doubly Linked List
  • Binary Trees

Graphs

  • Graphs in Memory
  • Runtime Complexity
  • Adjacency List
  • > Graph Transversal Algorithms
      • Breadth-First Search
      • Depth-First Search

Mathematics

  • Elementary Probability Theory
  • Combinatorics
  • N Choose K
  • Discrete Mathematics

Advanced

  • System Design
  • Operating Systems
  • Deadlock & Livelock
  • Semaphores
  • Resources
  • Resource Allocation
  • Context Switching (Operating System/Hardware)
  • Scheduling