Skip to content

Instantly share code, notes, and snippets.

@0x8badf00d
Created October 23, 2014 03:10
Show Gist options
  • Save 0x8badf00d/83e9c7ad92cf1e2a9b95 to your computer and use it in GitHub Desktop.
Save 0x8badf00d/83e9c7ad92cf1e2a9b95 to your computer and use it in GitHub Desktop.
Google Interview Prep
1) Algorithm Complexity - Big-O
2) Sorting - Merge, Insert, Bubble
3) Hashtables - Implement using Arrays
4) Trees - Binary, n-ary, trie-trees; balanced binary tree - Red/Black tree, splay tree, AVL tree
Tree traversal algorithm - BFS, DFS ; difference between inorder, postorder, preorder
5) Graphs - Representation of graphs using: objects and pointers, matrix, adjacency list
Graph traversal algorithm - BFS, DFS
A* and Dijkstra
6) Data Structures - NP-complete problems: traveling salesman and knapsack problem
7) Discrete Mathematics - combinatorics and probability
8) Operating Systems - processes, threads, concurrency, locks, mutexes, semaphores, monitors, deadlock, livelock, resources a process and thread needs, how context switching works, scheduling
Doug Lea's Concurrent Programming in Java
* Algorithm Design Manual ~ by Steven Skiena
* Concurrent Programming in Java ~ by Doug Lea
* Discrete Mathematics ~ by Rod Haggarty
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment