** **

Below problems are chosen on **basis of concepts involved** in solving them, that will accelerate your thought process and help you further to solve several similar problems asked in a coding interview. There might be multiple approaches discussed to solve few problems. We recommend to go through each one of them.

** **

**Array:**

Find pair with given sum in the array

Maximum subarray problem (Kadane’s algorithm)

Longest Increasing Subsequence

** **

**Backtracking:**

Find Longest Possible Route in a Matrix

Find all Permutations of a given string

** **

**Trees:**

Find next node in same level for given node in a binary tree

Print left view of binary tree

Find diameter of a binary tree

In-place convert convert given Binary Tree to Doubly Linked List

Find ancestors of given node in a Binary Tree

** **

**Divide & Conquer:**

Find first or last occurrence of a given number in a sorted array

Maximum Sum Subarray using Divide & Conquer

** **

**Dynamic Programming:**

Longest Common Subsequence | Introduction & LCS Length

Longest Palindromic Substring (Non-DP Space Optimized Solution)

** **

**BFS/DFS:**

Breadth First Search (BFS) | Iterative & Recursive Implementation

Minimum number of throws required to win Snake and Ladder game

Depth First Search (DFS) | Iterative & Recursive Implementation

Find Shortest path from source to destination in a matrix that satisfies given constraints

Find all occurrences of given string in a character matrix

** **

**Matrix:**

Find all paths from first cell to last cell of a matrix

Find maximum sum submatrix present in a given matrix

** **

**Heap:**

Merge M sorted lists each containing N elements

Find K’th largest element in an array

** **

**Linked List:**

Merge given sorted linked lists into one

**Thank you for being with us. 🙂**

## Leave a Reply

Knowing advanced algorithmic and data structure concepts is what separates a programmer who can get something done 75% of the time from one who can get something done 90-100% of the time. Having a bunch of code-only programmers means when something unique comes up that has to scale in a complicated manner, it will have to be passed upwards to someone in a higher position, using up their time on a project that was assigned to someone they manage. It also shows that those programmers probably won’t get promoted to those positions.

kudos. Awesome list.

Thanks! this is really useful.