# Important topics for coding round of tech companies

When people try to find the topics that they need to study while learning data structures online, they end up getting confused because the no of topics that they find is huge.

Moreover, multiple different sources offer multiple different lists of topics which leads to unnecessary confusion. Therefore, we have prepared a list of important topics for coding round of tech companies that you need to study thoroughly if you want to crack interviews of top tech companies.

#### Common Data Structures & Algorithms

This is the list of common data structures which you are expected to know if you are appearing for any online coding interview/whiteboard coding round. You should know the ins and outs of each of this data structure.

##### Common Data Structures

- Linked Lists and its variants
- Arrays
- Strings
- Stack
- Queue and its variants
- Hash Table/HashMap
- Sets
- Trees
- Binary Trees
- Binary Search Trees
- Heaps
- Priority Queue
- Graphs

##### Common Problem-Solving Techniques / Algorithms

These are some of the common problem-solving techniques/algorithms which you can expect in any common interview:

- Ad-hoc Problems
- Sorting
- Two Pointers Method
- Sliding Window Method
- Modified Binary Search
- Divide & Conquer
- Recursion
- Backtracking
- Rolling Hash
- Tree Traversal
- Graph Traversal – Breadth First Search and Depth First Search
- Topological Sorting
- Minimum Spanning Tree
- Shortest Path Algorithms
- Common greedy Algorithms
- One Dimensional Dynamic Programming
- Dynamic Programming in two or more dimensions
- Bit Manipulation

For each of the above-mentioned data structures and algorithms, your aim should be the following:

- To study all the common operations that we can perform on the data structure and deeply understand the time and space complexities involved in such operations.
- You should aim to study all the different patterns of problems that get asked in the interview for all the data structures listed below and practice them.
- You should be comfortable using / implementing these data structures. For example, if you find a problem in which you are using max-heaps then you should be able to either quickly implement an optimized version of max heap or should be able to use the already existing max-heap version in your programming language.

Apart from the above common algorithms/data structures, you can also learn some more advanced topics if you have time. This is especially important, if you are preparing for FAANG companies.

##### Advanced Data Structures / Algorithms

- Union-Find
- Trie
- Segment Trees
- Binary Indexed Tree
- Suffix Array
- Math based algorithms
- Nims Game
- Minimax
- String matching using KMP and Z Algorithm