** **

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.

The problems given are very useful for those who are preparing for the data structure interviews. Thanks!