|
8 | 8 | - Example of printing the date
|
9 | 9 | - Using reflection to make a dynamic object
|
10 | 10 |
|
| 11 | + |
| 12 | + |
| 13 | +Ideas |
| 14 | +--------------- |
| 15 | +Sorting (plus searching / binary search) |
| 16 | +Divide-and-conquer |
| 17 | +Dynamic programming / memoization |
| 18 | +Greediness |
| 19 | +Recursion |
| 20 | +Algorithms associated with a specific data structure (which brings us to our fourth suggestion…) |
| 21 | + |
| 22 | +Array |
| 23 | +Stack |
| 24 | +Queue |
| 25 | +Hashset |
| 26 | +Hashtable |
| 27 | +binary tree |
| 28 | +Heap |
| 29 | +Graph |
| 30 | + |
| 31 | +You should know these data structures inside and out. What are the insertion/deletion/lookup characteristics? (O(log n) for a balanced binary tree, for example.) What are the common caveats? (Hashing is tricky, and usually takes O(k) time when k is the size of the object being hashed.) What algorithms tend to go along with each data structure? (Dijkstra’s for a graph.) But when you understand these data structures, sometimes the solution to a problem will pop into your mind as soon as you even think about using the right one. |
| 32 | + |
| 33 | +Analyst of scale |
| 34 | +Though process is important |
| 35 | +Think out loud |
| 36 | +Practice on paper |
| 37 | +Want actual code |
| 38 | +Heaps, list, queues, stacks, btree, db algorithms |
| 39 | +Read about google interviews online |
| 40 | +Start with example then do code |
| 41 | + |
| 42 | +Algorithm complexity |
| 43 | +Sorting - quicksort/mergesort |
| 44 | +Hashmap |
| 45 | +Tress - binary, n-ary, trie, balanced binary tree such as red/black tree, sply, AVL |
| 46 | +Tree traversal - BFS, DFS, inorder/postorder/preorder |
| 47 | +Graphs - objects, points, matrix, Djkstra, A* |
| 48 | +NP complete problems - travelling salesman, knapsack problem |
| 49 | +Maths - combinatarics, probabilty, n-choose-k problems, discrete maths |
| 50 | +Selection sort, heapsort, mergesort, quicksort, binary search |
| 51 | +Adjaceny matrix, adjacncy list |
| 52 | +Mutex, semaphore, deadlock, livelock, lock/monitor |
0 commit comments