1. Data Structures & Algorithms

The following is a long list of topics. If you're preparing to interview at a top tech company and don't have much time (<2 months), just go over the essentials.

Coding Challenges

Do all the Leetcode problems from the "Google Problems" section. Don't worry if you're not applying to Google. And don't be a cry baby. Just do them all and you'll be in a better shape.

Data Structures

Essentials - You're screwed if you don't know these.

Be able to implement any of these from scratch

  1. Trie (Notes)

Advanced - Ignore if you don't have time.

Algorithms

Essentials - You're screwed if you don't know these.

Try implementing these.

  1. Bit Manipulation & Numbers (Notes) - Unsigned vs signed numbers. Negative and positive number representation. Know how add and subtract works.

  2. Mergesort

  3. Quicksort

  4. Heapsort - Sort it in-place to get O(1) space

  5. Subsets

  6. BFS Graph

  7. DFS Graph

  8. Tree Traversals - BFS, DFS (in-order, pre-order, post-order): Implement Recursive and Iterative

  9. External Sort - No implementation

  10. NP-Complete (Video) - just know the concept

  11. Detect cycle in an undirected graph

  12. Detect cycle in a directed graph

  13. Count connected components in graph

  14. Find strongly connected components in graph

Advanced - Ignore if you don't have time.

  1. Disjoint Set

  2. What is a Spanning tree?

  3. Minimum Spanning Tree (Kruskal and Prim)

  4. A*

  5. Radix Sort —— Didn’t cover in class

  6. General Sorting Algorithms (Notes) - Bubble sort, insertion sort, etc.

  7. Explain bipartite graph (how do you check if graph is bipartite?)

  8. Do Traveling Salesperson and other NP problems