Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ashuray/InterviewRoom

Contains all important data structure and algorithms problems asked in interviews
https://github.com/ashuray/InterviewRoom

algorithm amazon-interview datastructures-algorithms geeksforgeeks interview interview-preparation interview-questions interviewbit leetcode microsoft-interview

Last synced: 3 months ago
JSON representation

Contains all important data structure and algorithms problems asked in interviews

Awesome Lists containing this project

README

        

# Interview Preparation
You can crack any Interview if you are preparing yourself in a well organised manner. There are lots of Data Structure and Algorithm problems on internet and it is quite impossible for a person to practice all of them. So it is really important that you practice a list of few problems which are really important and covers almost every concepts.

I have tried my best to sort all those problems for you and ordered them as well. I hope if you follow my list and study in the same order in which i have given, it will surely help you prepare very well for the Job Interview in your 2 months vacation.

## Table of Contents
- [Data Structures](#data-structures)
- [Array](#array)
- [LinkedList](#linkedlist)
- [Stack](#stack)
- [Queue](#queue)
- [Binary Tree](#binary-tree)
- [Binary Search Tree](#binary-search-tree)
- [Heap and Priority Queue](#heap-and-priority-queue)
- [Algorithms](#algorithms)
- [Binary Search](#binary-search)
- [Dynamic Programming](#dynamic-programming)

## Data Structures
- [ ] Tutorials:
- [MIT 6.006 Introduction to Algorithms, Fall 2011 (video)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [mycodeschool (video)](https://www.youtube.com/watch?v=92S4zgXN17o&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P)
- [UCSanDiegoX's Algorithms and Data Structures](https://www.edx.org/course/data-structures-fundamentals)

### Array
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|----------------------------------------------------------|-----------------------------|
| 1 | Missing number in array | [Leetcode](https://leetcode.com/problems/missing-number/) , [GFG](https://practice.geeksforgeeks.org/problems/missing-number-in-array/0) |
| 2 | Subarray with given sum | [GFG](https://practice.geeksforgeeks.org/problems/subarray-with-given-sum/0) |
| 3 | 2 Sum | [LeetCode](https://leetcode.com/problems/two-sum/) , [InterviewBit](https://www.interviewbit.com/problems/2-sum/), [GFG](https://practice.geeksforgeeks.org/problems/key-pair/0) , |
| 4 | Majority Element | [LeetCode](https://leetcode.com/problems/majority-element/) , [InterviewBit](https://www.interviewbit.com/problems/majority-element/) , [GFG](https://practice.geeksforgeeks.org/problems/majority-element/0) |
| 5 | Max Consecutive Ones | [LeetCode](https://leetcode.com/problems/max-consecutive-ones/) , [InterviewBit](https://www.interviewbit.com/problems/max-continuous-series-of-1s/) |
| 6 | Sort an array of 0s, 1s and 2s | [GFG](https://practice.geeksforgeeks.org/problems/sort-an-array-of-0s-1s-and-2s/0) , [LeetCode](https://leetcode.com/problems/sort-colors/) |
| 7 | Spiral Matrix | [LeetCode](https://leetcode.com/problems/spiral-matrix/) , [InterviewBit](https://www.interviewbit.com/problems/spiral-order-matrix-i/) |
| 8 | Find the duplicate number | [LeetCode](https://leetcode.com/problems/find-the-duplicate-number/) |
| 9 | Largest number formed from an array | [LeetCode](https://leetcode.com/problems/largest-number/) , [InterviewBit](https://www.interviewbit.com/problems/largest-number/), [GFG](https://practice.geeksforgeeks.org/problems/largest-number-formed-from-an-array/0) |
| 10 | Next Permutation | [LeetCode](https://leetcode.com/problems/next-permutation/) , [InterviewBit](https://www.interviewbit.com/problems/next-permutation/) |
| 11 | Merge Overlapping Intervals | [LeetCode](https://leetcode.com/problems/merge-intervals/) , [InterviewBit](https://www.interviewbit.com/problems/merge-intervals/), [GFG](https://www.interviewbit.com/problems/merge-intervals/) |
| 12 | First Missing Positive | [LeetCode](https://leetcode.com/problems/first-missing-positive/) , [InterviewBit](https://www.interviewbit.com/problems/first-missing-integer/) |

### LinkedList
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|----------------------------------------------------------|-----------------------------|
| 1 | Find middle element in a linked list | [LeetCode](https://leetcode.com/problems/middle-of-the-linked-list/) , [GFG](https://practice.geeksforgeeks.org/problems/finding-middle-element-in-a-linked-list/1) |
| 2 | Remove n'th node from end of a linked list | [LeetCode](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) , [InterviewBit](https://www.interviewbit.com/problems/remove-nth-node-from-list-end/) |
| 3 | Intersection Point in Y shaped linked list | [LeetCode](https://leetcode.com/problems/intersection-of-two-linked-lists/) , [InterviewBit](https://www.interviewbit.com/problems/intersection-of-linked-lists/) |
| 4 | Reverse a linked list | [LeetCode](https://leetcode.com/problems/reverse-linked-list/) , [InterviewBit](https://www.interviewbit.com/problems/reverse-linked-list/) |
| 5 | Check if a linked list is Palindrome | [LeetCode](https://leetcode.com/problems/palindrome-linked-list/) , [InterviewBit](https://www.interviewbit.com/problems/palindrome-list/) |
| 6 | Rotate a LinkedList | [LeetCode](https://leetcode.com/problems/rotate-list/) , [InterviewBit](https://www.interviewbit.com/problems/rotate-list/) |
| 7 | Reverse linked list in a group of given size k | [LeetCode](https://leetcode.com/problems/reverse-nodes-in-k-group/) , [InterviewBit](https://www.interviewbit.com/problems/k-reverse-linked-list/) |
| 8 | Detect and Remove Loop in a linked list | [LeetCode](https://leetcode.com/problems/linked-list-cycle-ii/) , [InterviewBit](https://www.interviewbit.com/problems/list-cycle/) |
| 9 | Find length of the Loop in a linked list | [GFG](https://practice.geeksforgeeks.org/problems/find-length-of-loop/1) |
| 10 | Segregate even and odd positioned nodes in a linked list | [LeetCode](https://leetcode.com/problems/odd-even-linked-list/) , [GFG](https://practice.geeksforgeeks.org/problems/rearrange-a-linked-list/1) |
| 11 | Segregate even and odd valued nodes in a linked list | [GFG](https://www.geeksforgeeks.org/segregate-even-and-odd-elements-in-a-linked-list/) |
| 12 | Clone a linked list with next and random pointer | [LeetCode](https://leetcode.com/problems/copy-list-with-random-pointer/) , [GFG](https://practice.geeksforgeeks.org/problems/clone-a-linked-list-with-next-and-random-pointer/1) |
| 13 | Reorder List L1->L2->...Ln to L1->Ln->L2->Ln-1.... | [LeetCode](https://leetcode.com/problems/reorder-list/) , [InterviewBit](https://www.interviewbit.com/problems/reorder-list/) |
| 14 | Delete N nodes after M nodes of a linked list | [GFG](https://practice.geeksforgeeks.org/problems/delete-n-nodes-after-m-nodes-of-a-linked-list/1) |
| 15 | Merge K sorted list | [LeetCode](https://leetcode.com/problems/merge-k-sorted-lists/) , [InterviewBit](https://www.interviewbit.com/problems/merge-two-sorted-lists/) , [GFG](https://practice.geeksforgeeks.org/problems/merge-k-sorted-linked-lists/1) |
| 16 | Add two numbers represented by a linked list | [LeetCode](https://leetcode.com/problems/add-two-numbers/) , [InterviewBit](https://www.interviewbit.com/problems/add-two-numbers-as-lists/) |

### Stack
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|----------------------------------------------------------|------------------------------|
| 1 | Valid Parentheses | [LeetCode](https://leetcode.com/problems/valid-parentheses/) |
| 2 | Length of longest valid Parentheses | [LeetCode](https://leetcode.com/problems/longest-valid-parentheses/) |
| 3 | Next Greater Element | [GFG](https://practice.geeksforgeeks.org/problems/next-larger-element/0) , [LeetCode](https://leetcode.com/problems/next-greater-element-ii/) |
| 4 | Nearest Smaller Element | [InterviewBit](https://www.interviewbit.com/problems/nearest-smaller-element/) |
| 5 | Trapping Rain Water | [LeetCode](https://leetcode.com/problems/trapping-rain-water/) , [InterviewBit](https://www.interviewbit.com/problems/rain-water-trapped/) |
| 6 | Largest Rectangle in a Histogram | [LeetCode](https://leetcode.com/problems/largest-rectangle-in-histogram/) , [InterviewBit](https://www.interviewbit.com/problems/largest-rectangle-in-histogram/) |
| 7 | Min Stack | [LeetCode](https://leetcode.com/problems/min-stack/) , [InterviewBit](https://www.interviewbit.com/problems/min-stack/) |

### Queue
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|----------------------------------------------------------|-------------------------------|
| 1 | Generate binary numbers from 1 to n | [GFG](https://www.geeksforgeeks.org/interesting-method-generate-binary-numbers-1-n/) |
| 2 | Minimum time required to rot all Oranges | [GFG](https://practice.geeksforgeeks.org/problems/rotten-oranges/0) , [LeetCode](https://leetcode.com/problems/rotting-oranges/) |
| 3 | First non repeating character in a stream | [GFG](https://practice.geeksforgeeks.org/problems/first-non-repeating-character-in-a-stream/0) |
| 4 | Circular tour | [GFG](https://practice.geeksforgeeks.org/problems/circular-tour/1) , [LeetCode](https://leetcode.com/problems/gas-station/) |
| 5 | Sliding Window Maximum | [LeetCode](https://leetcode.com/problems/sliding-window-maximum/) , [InterviewBit](https://www.interviewbit.com/problems/sliding-window-maximum/) |

### Binary Tree
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|---------------------------------------------------------|--------------------------------|
| 1 | Determine Height of a binary tree | [LeetCode](https://leetcode.com/problems/maximum-depth-of-binary-tree/) , [InterviewBit](https://www.interviewbit.com/problems/max-depth-of-binary-tree/) |
| 2 | Inorder Traversal | [InterviewBit](https://www.interviewbit.com/problems/inorder-traversal/) |
| 3 | Preorder Traversal | [InterviewBit](https://www.interviewbit.com/problems/preorder-traversal/) |
| 4 | Postorder Traversal | [InterviewBit](https://www.interviewbit.com/problems/postorder-traversal/) |
| 5 | Level Order Traversal | [LeetCode](https://leetcode.com/problems/binary-tree-level-order-traversal/) |
| 6 | Level Order Traversal in Spiral Form | [LeetCode](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/) , [InterviewBit](https://www.interviewbit.com/problems/zigzag-level-order-traversal-bt/) |
| 7 | Left and Right View of Binary Tree | [LeetCode](https://leetcode.com/problems/binary-tree-right-side-view/) |
| 8 | Diameter of a Binary tree | [LeetCode](https://leetcode.com/problems/diameter-of-binary-tree/) |
| 9 | Populating Next Right Pointers in Each Node | [LeetCode](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/) , [InterviewBit](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/) |
| 10 | Check if a Binary Tree is Sum Tree | [GFG](https://practice.geeksforgeeks.org/problems/sum-tree/1) |
| 11 | Check if a Binary Tree is Balanced | [LeetCode](https://leetcode.com/problems/balanced-binary-tree/) , [InterviewBit](https://leetcode.com/problems/balanced-binary-tree/) |
| 12 | Check if a Binary Tree is BST | [GFG](https://practice.geeksforgeeks.org/problems/check-for-bst/1) |
| 13 | Convert a given Binary Tree into its mirror Tree | [GFG](https://practice.geeksforgeeks.org/problems/mirror-tree/1) |
| 14 | Check if two Binary Tree are mirror image of each other | [GFG](https://practice.geeksforgeeks.org/problems/check-mirror-in-n-ary-tree/0) |
| 15 | Check if a Binary Tree is Symmetric Binary Tree | [InterviewBit](https://www.interviewbit.com/problems/symmetric-binary-tree/) , [LeetCode](https://leetcode.com/problems/symmetric-tree/) |
| 16 | Invert a Binary Tree | [InterviewBit](https://www.interviewbit.com/problems/invert-the-binary-tree/) , [LeetCode](https://leetcode.com/problems/invert-binary-tree/) |
| 17 | Vertical order Traversal | [InterviewBit](https://www.interviewbit.com/problems/vertical-order-traversal-of-binary-tree/) |
| 18 | Top View Of Binary Tree | [GFG](https://practice.geeksforgeeks.org/problems/top-view-of-binary-tree/1) |
| 19 | Bottom View of Binary Tree | [GFG](https://practice.geeksforgeeks.org/problems/bottom-view-of-binary-tree/1) |
| 20 | Check if Root to Leaf path sum exist | [InterviewBit](https://www.interviewbit.com/problems/path-sum/) , [LeetCode](https://leetcode.com/problems/path-sum/) |
| 21 | All Root to Leaf path sum | [InterviewBit](https://www.interviewbit.com/problems/root-to-leaf-paths-with-sum/) , [LeetCode](https://leetcode.com/problems/path-sum-ii/) |
| 22 | Maximum path sum from leaf to leaf | [GFG](https://practice.geeksforgeeks.org/problems/maximum-path-sum/1) |
| 23 | Maximum path sum from any node to any node | [LeetCode](https://leetcode.com/problems/binary-tree-maximum-path-sum/) |
| 24 | Least Common Ancestor | [LeetCode](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/) |
| 25 | Find the distance between two nodes of a Binary Tree | [GFG](https://practice.geeksforgeeks.org/problems/min-distance-between-two-given-nodes-of-a-binary-tree/1) |

### Binary Search Tree
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|-------------------------------|-----------------------------------------------------------|
| 1 | Insert a Node in BST | [LeetCode](https://leetcode.com/problems/insert-into-a-binary-search-tree/) |
| 2 | Delete a Node from BST | [LeetCode](https://leetcode.com/problems/delete-node-in-a-bst/) |
| 3 | Lowest common ancestor in BST | [LeetCode](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) |
| 4 | Inorder Successor in BST | [LeetCode](https://practice.geeksforgeeks.org/problems/inorder-successor-in-bst/1) |
| 5 | Kth Smallest node in BST | [LeetCode](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) |

### Heap and Priority Queue
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|------------------------------------------|-----------------------------------------------|
| 1 | Median in a stream of integers | [GFG](https://practice.geeksforgeeks.org/problems/find-median-in-a-stream/0) |
| 2 | Top K Frequent Elements in an Array | [LeetCode](https://leetcode.com/problems/top-k-frequent-elements/) |
| 3 | Kth Largest Element in a Stream | [LeetCode](https://leetcode.com/problems/kth-largest-element-in-a-stream/) |
| 4 | Sort a nearly sorted (or K sorted) array | [GFG](https://www.geeksforgeeks.org/nearly-sorted-algorithm/) |
| 5 | Kth Smallest Element in a Sorted Matrix | [LeetCode](https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/) |

## Algorithms

### Binary Search
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|----------------------------------------------------------|---------------------------|
| 1 | Find First and Last Position of Element in Sorted Array | [LeetCode](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/) |
| 2 | Search in Rotated Sorted Array | [LeetCode](https://leetcode.com/problems/search-in-rotated-sorted-array/) , [InterviewBit](https://www.interviewbit.com/problems/rotated-sorted-array-search/) , [GFG](https://practice.geeksforgeeks.org/problems/search-in-a-rotated-array/0) |
| 3 | Find Minimum in Rotated Sorted Array | [LeetCode](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) |
| 4 | Pow(x,n) | [LeetCode](https://leetcode.com/problems/powx-n/) , [InterviewBit](https://www.interviewbit.com/problems/implement-power-function/) |
| 5 | Sqrt(n) | [LeetCode](https://leetcode.com/problems/sqrtx/) , [InterviewBit](https://www.interviewbit.com/problems/square-root-of-integer/) |
| 6 | Matrix Search | [LeetCode](https://leetcode.com/problems/search-a-2d-matrix/) , [InterviewBit](https://www.interviewbit.com/problems/matrix-search/) |
| 6 | Median of Two Sorted Arrays | [LeetCode](https://leetcode.com/problems/median-of-two-sorted-arrays/) , [InterviewBit](https://www.interviewbit.com/problems/median-of-array/) |

## Dynamic Programming
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|------------------------------------------------------|-----------------------------------------|
| 1 | Climbing Stairs | [LeetCode](https://leetcode.com/problems/climbing-stairs/) |
| 2 | Coin Sum Infinite | [InterviewBit](https://www.interviewbit.com/problems/coin-sum-infinite/) |
| 3 | Min Cost Climbing Stairs | [LeetCode](https://leetcode.com/problems/min-cost-climbing-stairs/) |
| 4 | Rod Cutting Problem | [GFG](https://www.geeksforgeeks.org/cutting-a-rod-dp-13/) |
| 5 | Longest Common Subsequence | [LeetCode](https://leetcode.com/problems/delete-operation-for-two-strings/) |
| 6 | Print Longest Common Subsequence | [Hackerrank](https://www.hackerrank.com/challenges/dynamic-programming-classics-the-longest-common-subsequence/problem)|
| 7 | Longest Increasing Subsequence | [LeetCode](https://leetcode.com/problems/longest-increasing-subsequence/) , [InterviewBit](https://www.interviewbit.com/problems/longest-increasing-subsequence/) |
| 8 | Edit Distance | [LeetCode](https://leetcode.com/problems/edit-distance/) |
| 9 | Longest Common Substring | [LeetCode](https://leetcode.com/problems/maximum-length-of-repeated-subarray/) |
| 10 | Maximum Sum Contiguous Subarray | [LeetCode](https://leetcode.com/problems/maximum-subarray/) |
| 11 | Maximum Sum without adjacent Element(House Robber) | [LeetCode](https://leetcode.com/problems/house-robber/) |
| 12 | Maximum Product Subarray | [LeetCode](https://leetcode.com/problems/maximum-product-subarray/) |
| 13 | Find minimum number of coins that make a given value | [LeetCode](https://leetcode.com/problems/coin-change/) |
| 14 | Min Cost Path | [InterviewBit](https://www.interviewbit.com/problems/min-sum-path-in-matrix/ ) |
| 15 | Maximal Rectangle | [LeetCode](https://leetcode.com/problems/maximal-rectangle/) , [InterviewBit](https://www.interviewbit.com/problems/max-rectangle-in-binary-matrix/) |
| 16 | Minimum Jump to reach End | [LeetCode](https://leetcode.com/problems/jump-game-ii/) , [InterviewBit](https://www.interviewbit.com/problems/min-jumps-array/) |
| 17 | 0 - 1 Knapsack Problem | [GFG](https://practice.geeksforgeeks.org/problems/0-1-knapsack-problem/0) |
| 18 | Partition Equal Subset Sum | [LeetCode](https://leetcode.com/problems/partition-equal-subset-sum/) |
| 19 | Longest Palindromic Subsequence | [LeetCode](https://leetcode.com/problems/longest-palindromic-subsequence/) |
| 20 | Longest Bitonic Subsequence | [InterviewBit](https://www.interviewbit.com/problems/length-of-longest-subsequence/) |
| 21 | Word Break | [LeetCode](https://leetcode.com/problems/word-break/) , [InterviewBit](https://www.interviewbit.com/problems/word-break/) |
| 22 | Interleaving String | [LeetCode](https://leetcode.com/problems/interleaving-string/) , [InterviewBit](https://www.interviewbit.com/problems/interleaving-strings/) |
| 23 | Matrix Chain Multiplication | [LeetCode](https://leetcode.com/problems/burst-balloons/) |
| 24 | Palindrome Partitioning | [LeetCode](https://leetcode.com/problems/palindrome-partitioning-ii/) |

## Graph
| **ID** | **PROBLEM STATEMENT** | **PROBLEM LINK** |
|--------|------------------------------------------------------|-----------------------------------------|
| 1 | Region in Binary Matrix | [InterviewBit](https://www.interviewbit.com/problems/region-in-binarymatrix/) , [GFG](https://practice.geeksforgeeks.org/problems/length-of-largest-region-of-1s-1587115620/1) |
| 2 | Rotting Oranges | [LeetCode](https://leetcode.com/problems/rotting-oranges/) , [GFG](https://practice.geeksforgeeks.org/problems/rotten-oranges/0) |
| 3 | Number of Islands | [LeetCode](https://leetcode.com/problems/number-of-islands/) , [GFG](https://practice.geeksforgeeks.org/problems/find-the-number-of-islands/1/?category[]=Graph&category[]=Graph&page=1&query=category[]Graphpage1category[]Graph) |
| 4 | Find whether path exist | [InterviewBit](https://www.interviewbit.com/problems/path-in-directed-graph/) , [GFG](https://practice.geeksforgeeks.org/problems/find-whether-path-exist5238/1/?category[]=Graph&category[]=Graph&page=1&query=category[]Graphpage1category[]Graph) |
| 5 | Cycle in Undirected Graph | [InterviewBit](https://www.interviewbit.com/problems/cycle-in-undirected-graph/) , [GFG](https://practice.geeksforgeeks.org/problems/detect-cycle-in-an-undirected-graph/1/?category[]=Graph&category[]=Graph&page=1&query=category[]Graphpage1category[]Graph) |
| 6 | Cycle in Directed Graph | [InterviewBit](https://www.interviewbit.com/problems/cycle-in-directed-graph/) , [LeetCode](https://leetcode.com/problems/course-schedule/) |
| 7 | Topological Sort | [LeetCode](https://leetcode.com/problems/course-schedule-ii/) |
| 8 | Snakes and Ladders | [LeetCode](https://leetcode.com/problems/snakes-and-ladders/) , [InterviewBit](https://www.interviewbit.com/problems/snake-ladder-problem/) |
| 9 | Alien Dictionary | [GFG](https://practice.geeksforgeeks.org/problems/alien-dictionary/1/?category[]=Graph&category[]=Graph&page=1&query=category[]Graphpage1category[]Graph) |
| 10 | Word Search | [LeetCode](https://leetcode.com/problems/word-search/) , [InterviewBit](https://www.interviewbit.com/problems/word-search-board/) |
| 11 | Word Search 2 | [LeetCode](https://leetcode.com/problems/word-search-ii/) , [GFG](https://practice.geeksforgeeks.org/problems/word-boggle4143/1/?category[]=Graph&category[]=Graph&page=2&query=category[]Graphpage2category[]Graph) |
| 12 | Word Ladder | [InterviewBit](https://www.interviewbit.com/problems/word-ladder-i/) , [LeetCode](https://leetcode.com/problems/word-ladder/) |