# Must Do Coding Questions for Product Based Companies

As the placement season is back, GeeksforGeeks is here to help you crack the interview. We have selected some most commonly asked and MUST DO practice problems to crack Product-based Company Interviews.

You can also take part in our *mock placement contests* which will help you learn different topics and practice at the same time, simulating the feeling of a real placement test environment.

**Note:** Now you can track your progress and learn from video editorials of these questions **Must Do Interview Preparation Course**.

**Topic:**

- Math
- Array
- Searching
- Sorting
- Matrix
- String
- Hashing
- Bit Masking
- Linked List
- Stack
- Queue
- Heap
- Binary Tree
- BST
- Graph
- Trie
- Greedy
- DP
- Recursion
- Back-Tracking
- Algorithms
- Design

### Math

Question | Article | Practice |
---|---|---|

Missing Number in Array | Link | Link |

Trailing Zeros in Factorial | Link | Link |

A Simple Fraction | Link | Link |

Nth Natural Number | Link | Link |

Smallest Positive Integer that can not be represented as Sum | Link | Link |

### Arrays

An array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together.

Question | Article | Practice |
---|---|---|

Rotate Array | Link | Link |

Majority Element | Link | Link |

Plus one | Link | Link |

Array of alternative +ve and -ve no.s | Link | Link |

Product Array puzzle | Link | Link |

Frequencies of Limited Range Array Elements | Link | Link |

Large Factorial | Link | Link |

Jump Game | Link | Link |

Maximum number of 1â€™s | Link | Link |

Stock Buy and Sell | Link | Link |

Longest Consecutive Subsequence | Link | Link |

Maximum value of difference of a pair of elements and their Index | Link | Link |

Maximum index | Link | Link |

K-th element of two sorted Arrays | Link | Link |

Trapping Rain Water | Link | Link |

3 sum closest | Link | Link |

Maximum circular Subarray Sum | Link | Link |

Merge without Extra Space | Link | Link |

### Searching

Question | Article | Practice |
---|---|---|

Search insert position of K in a sorted array | Link | Link |

Collecting Wood | Link | Link |

Left most and right most index | Link | Link |

Bitonic Point | Link | Link |

Search an element in sorted and rotated array | Link | Link |

Square root of a number | Link | Link |

Find missing in second array | Link | Link |

Painterâ€™s Partition Problem | Link | Link |

Median of 2 sorted arrays of Different sizes | Link | Link |

Allocate minimum number of pages | Link | Link |

### Sorting

Question | Article | Practice |
---|---|---|

Wave array | Link | Link |

Count the number of possible triangles | Link | Link |

Triplets with sum with given range | Link | Link |

Count Inversions | Link | Link |

Relative Sorting | Link | Link |

Minimum Platforms | Link | Link |

Maximum Index | Link | Link |

### Matrix

A matrix represents a collection of numbers arranged in an order of rows and columns. It is necessary to enclose the elements of a matrix in parentheses or brackets.

Question | Article | Practice |
---|---|---|

Sort a 2D vector diagonally | Link | Link |

Spiral Matrix | Link | Link |

Boolean matrix | Link | Link |

Rotate matrix by 90 degrees | Link | Link |

Search in a row-column sorted Matrix | Link | Link |

Row with maximum 1s | Link | Link |

### String

Strings are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character â€˜\0â€™.

Question | Article | Practice |
---|---|---|

Reverse words in a given string | Link | Link |

Longest Common Prefix | Link | Link |

Roman Number to Integer | Link | Link |

Next higher palindrome number using the same set of digits | Link | Link |

Length of longest prefix suffix | Link | Link |

Smallest window in string containing all characters | Link | Link |

Validate an IP address | Link | Link |

Implement Atoi | Link | Link |

Look and say Pattern | Link | Link |

Longest K unique characters substring | Link | Link |

### Hashing

Question | Article | Practice |
---|---|---|

Key Pair | Link | Link |

Top K Frequent Elements in Array | Link | Link |

Intersection of two arrays | Link | Link |

Array Pair Sum Divisibility Problem | Link | Link |

Triplet Sum in Array | Link | Link |

Length of the longest substring | Link | Link |

Is Sudoku Valid | Link | Link |

Print Anagrams Together | Link | Link |

Subarrays with sum K | Link | Link |

Longest subarray with sum divisible by K | Link | Link |

### Bit Masking

Question | Article | Practice |
---|---|---|

Reverse bits | Link | Link |

Number of set bits | Link | Link |

Sum of two integers | Link | Link |

Check whether K-th bit is set or not | Link | Link |

Longest Consecutive 1â€™s | Link | Link |

Find the element that appears once | Link | Link |

Gray code | Link | Link |

Maximum AND | Link | Link |

Maximum subset XOR | Link | Link |

Bit Difference | Link | Link |

### Linked List

A linked list is a linear data structure, in which the elements are not stored at contiguous memory locations.

Question | Article | Practice |
---|---|---|

Merge Two Sorted Linked Lists | Link | Link |

Reverse a Linked List | Link | Link |

Delete a Node without Head Pointer | Link | Link |

Add two Numbers represented by linked lists | Link | Link |

Finding middle element in a linked list | Link | Link |

Check if linked list is palindrome | Link | Link |

Rearrange a linked list | Link | Link |

Detect and Remove a loop In Linked List | Link | Link |

Merge Sort for Linked List | Link | Link |

Intersection of Linked List | Link | Link |

Rotate Linked List by K places | Link | Link |

Flattening a Linked List | Link | Link |

Reverse a linked list in groups of given size | Link | Link |

Partition a linked list around a given value | Link | Link |

Clone a linked list with next and random pointers | Link | Link |

### Stack

A stack is a linear data structure in which elements can be inserted and deleted only from one side of the list, called the top. A stack follows the LIFO (Last In First Out) principle.

Question | Article | Practice |
---|---|---|

Parenthesis Checker | Link | Link |

Infix to Postfix | Link | Link |

Restrictive Candy Crush | Link | Link |

Next Larger Element | Link | Link |

Stock span problem | Link | Link |

The Celebrity Problem | Link | Link |

Maximum Rectangular Area in a Histogram | Link | Link |

Longest Valid Parentheses | Link | Link |

Maximum of minimum for every window size | Link | Link |

Remove K digits | Link | Link |

132 Geeky Buildings | Link | Link |

### Queue

A queue is a linear data structure in which elements can be inserted only from one side of the list called rear, and the elements can be deleted only from the other side called the front. The queue data structure follows the FIFO (First In First Out) principle.

Question | Article | Practice |
---|---|---|

Maximum of all subarrays of size K | Link | Link |

Circular tour (Sliding Window) | Link | Link |

### Heap

A Heap is a special Tree-based data structure in which the tree is a complete binary tree.

Question | Article | Practice |
---|---|---|

Rearrange Characters | Link | Link |

Minimum Cost of ropes | Link | Link |

Kth largest element of stream | Link | Link |

Merge k sorted arrays | Link | Link |

Median of stream | Link | Link |

### Binary Tree

A tree whose elements have at most 2 children is called a binary tree. Since each element in a binary tree can have only 2 children, we typically name them the left and right child.

Question | Article | Practice |
---|---|---|

Symmetric Tree | Link | Link |

Zigzag Tree Traversal | Link | Link |

Checked for Balanced tree | Link | Link |

Height of Binary Tree | Link | Link |

Diameter of Binary tree | Link | Link |

Determine if two trees are identical | Link | Link |

Minimum depth of binary tree | Link | Link |

Check if subtree | Link | Link |

Inorder Traversal (iterative) | Link | Link |

Preorder Traversal (iterative) | Link | Link |

Postorder Traversal(iterative) | Link | Link |

Vertical Traversal of a Binary Tree | Link | Link |

Construct Binary Tree from Preorder and Inorder Traversal | Link | Link |

Connect nodes at same level | Link | Link |

Lowest Common Ancestor of a Binary Tree | Link | Link |

Boundary Traversal | Link | Link |

Sum tree | Link | Link |

Binary Tree to Doubly Linked List | Link | Link |

Maximum sum path between two leaf nodes | Link | Link |

Burning Tree | Link | Link |

### Binary Search Tree

Binary Search Tree is a node-based binary tree data structure which has the following properties:

- The left subtree of a node contains only nodes with keys lesser than the nodeâ€™s key.
- The right subtree of a node contains only nodes with keys greater than the nodeâ€™s key.
- The left and right subtree each must also be a binary search tree.

Question | Article | Practice |
---|---|---|

Check for BST | Link | Link |

Array to BST | Link | Link |

Inorder Successor in BST | Link | Link |

Kth Largest Element in a BST | Link | Link |

Remove BST keys outside the given range | Link | Link |

Pair with given target in BST | Link | Link |

Unique BSTs | Link | Link |

Preorder Traversal and BST | Link | Link |

Merge two BSTâ€™s | Link | Link |

Fixing two nodes of a BST | Link | Link |

### Graph

A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph.

Question | Article | Practice |
---|---|---|

Number of Islands | Link | Link |

COVID Spread | Link | Link |

Prerequisite tasks | Link | Link |

Strongly Connected Component | Link | Link |

Minimum swaps to sort | Link | Link |

Shortest path | Link | Link |

Circle of Strings | Link | Link |

Snake and Ladder Problem | Link | Link |

Detect cycle in an undirected graph | Link | Link |

Detect cycle in a directed graph | Link | Link |

Check for Bipartite graph | Link | Link |

Unit Area of Largest region of 1s | Link | Link |

Alien Dictionary | Link | Link |

Word Ladder | Link | Link |

### Trie

Trie is an efficient information retrieval data structure. Using Trie, search complexities can be brought to optimal limit (key length).

Question | Article | Practice |
---|---|---|

Minimum XOR value pair | Link | Link |

Word Boggle â€“ II | Link | Link |

Most frequent word in an array of strings | Link | Link |

Minimum XOR value pair | Link | Link |

### Greedy

Greedy is an algorithmic paradigm that builds up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit.

Question | Article | Practice |
---|---|---|

N meetings in one room | Link | Link |

Coin Piles | Link | Link |

Maximize Toys | Link | Link |

Largest number with given sum | Link | Link |

Minimize the heights | Link | Link |

Fractional Knapsack | Link | Link |

Job Sequencing | Link | Link |

Police and Thieves | Link | Link |

Water the Plants | Link | Link |

### DP

Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for same inputs, we can optimize it using Dynamic Programming.

Question | Article | Practice |
---|---|---|

Count ways to reach the nâ€™th stair | Link | Link |

Get Minimum Squares | Link | Link |

Nth Fibonacci Number | Link | Link |

0 â€“ 1 Knapsack Problem | Link | Link |

Number of Coins | Link | Link |

Edit distance | Link | Link |

Maximize The Cut Segments | Link | Link |

Box Stacking | Link | Link |

Longest Increasing Subsequence | Link | Link |

Longest Palindromic Substring | Link | Link |

Longest Common Substring | Link | Link |

Longest Common Subsequence | Link | Link |

Wildcard Pattern Matching | Link | Link |

Total Decoding Messages | Link | Link |

Max length chain | Link | Link |

Maximum sum increasing subsequence | Link | Link |

Minimum number of jumps | Link | Link |

Subset Sum Problem | Link | Link |

Maximum path sum in matrix | Link | Link |

Player with max score | Link | Link |

Shortest Common Supersequence | Link | Link |

Palindrome Partitioning | Link | Link |

Form a Palindrome | Link | Link |

Boolean Parenthesization | Link | Link |

Matrix Chain | Link | Link |

Maximum Profit | Link | Link |

Minimum Cost Path | Link | Link |

Partition Equal Subset Sum | Link | Link |

### Recursion

The process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called as recursive function.

Question | Article | Practice |
---|---|---|

Number of Paths | Link | Link |

Pascals Triangle | Link | Link |

Josephus problem | Link | Link |

Tower of Hanoi | Link | Link |

Special Keyboard | Link | Link |

Flood Fill Algorithm | Link | Link |

### Backtracking

Backtracking is an algorithmic-technique for solving problems recursively by trying to build a solution incrementally, one piece at a time, removing those solutions that fail to satisfy the constraints of the problem at any point of time (by time, here, is referred to the time elapsed till reaching any level of the search tree).

Question | Article | Practice |
---|---|---|

Permutations | Link | Link |

Letter Combinations of a Phone Number | Link | Link |

Generate Parentheses | Link | Link |

Word Boggle â€“ 1 | Link | Link |

Rat in a Maze Problem | Link | Link |

Largest number in K swaps | Link | Link |

Combination Sum | Link | Link |

Palindrome Partitioning | Link | Link |

N-Queen Problem | Link | Link |

Solve the Sudoku | Link | Link |

### Algorithms

Question | Article | Practice |
---|---|---|

Bubble Sort | Link | Link |

Insertion Sort | Link | Link |

Selection Sort | Link | Link |

Merge Sort | Link | Link |

Quick Sort | Link | Link |

Heap Sort | Link | Link |

Count Sort | Link | Link |

Kadane Algorithm | Link | Link |

Minimum Spanning Tree | Link | Link |

Implementing Dijkstra Algorithm | Link | Link |

Floyd Warshall | Link | Link |

Bellman Ford Algorithm | Link | Link |

Rabin-Karp Algorithm | Link | Link |

KMP algorithm | Link | Link |

Z Algorithm | Link | Link |

Huffman Encoding | Link | Link |

### Design

Question | Article | Practice |
---|---|---|

Stack using two queues | Link | Link |

Queue using stack | Link | Link |

Ternary Search | Link | Link |

Binary Heap Operations | Link | Link |

LRU cache | Link | Link |

Trie | (Insert and Search) | Link | Link |

You may also check our ** latest online course series** to learn DS & Algo is named DSA, which covers everything about Data Structures from Basic to Advanced.

**Note:**

- If you are looking for Most Asked CS Subjects Interview Questions or theory questions then refer to the following link – Most asked Computer Science Subjects Interview Questions in Amazon, Microsoft, Flipkart
- We have also prepared a list of top company-wise coding questions. Refer to the following link – Must Do Coding Questions Company-wise
- If you are looking for a complete guide for your Competitive Programming Journey then refer to the following link – Competitive Programming – A Complete Guide.

### **GeeksforGeeks Courses**

## Must Do Coding Questions – Self Paced Course

Luck favours the prepared, start practising now! This Must Do Coding Questions – Self Paced will help you become a top coder by practising the Must Do Coding Questions curated by the leading industry experts. Prepare and practice for your next coding interview with over 250+ practice problems on topics like

Arrays, Searching, Sorting, Linked List, Matrix, String, Graphs, and much more.## Complete Interview Preparation

We often ask ourselves, why are we not able to crack our interviews? Where are we lacking exactly? How do we do it? If you are also having these questions, then donâ€™t worry. We are here to help you with your interview preparation. Beginning with learning concepts like

OOP, DSA, and Aptitudeto working on projects with resume building. Everything at one place. Donâ€™t wait and get yourself enrolled in our Complete Interview Preparation now.