# 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

### Advanced - Ignore if you don't have time.

## Algorithms

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

Try implementing these.

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

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

Selections - Kth Smallest Elements (Sort, QuickSelect, Mediums of Mediums) - Implement all three ways

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

External Sort - No implementation

NP-Complete (Video) - just know the concept

Detect cycle in an undirected graph

Detect cycle in a directed graph

Count connected components in graph

Find strongly connected components in graph

### Advanced - Ignore if you don't have time.

Disjoint Set

What is a Spanning tree?

Minimum Spanning Tree (Kruskal and Prim)

Radix Sort —— Didn’t cover in class

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

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

Do Traveling Salesperson and other NP problems

Last updated