## Activity Selection Problem using Dynamic Programming

Given a set of activities and the starting & finishing time of each activity, find the maximum number of activities that can be performed by a single person assuming that a person can only work on a single activity at a time.

## Find total ways to reach the n’th stair with at-most m steps

Given a stair case, find total number of ways to reach the n’th stair from bottom of the stair when a person is only allowed to take at-most m steps at a time.

## Find number of ways to fill a N x 4 matrix with 1 x 4 tiles

Given a n x 4 matrix where n is a positive number, find number of ways to fill the matrix with 1 x 4 tiles.

## Find total ways to reach the n’th stair from the bottom

Given a stair case, find total number of ways to reach the n’th stair from bottom of the stair when a person is only allowed to climb either 1 or 2 or 3 stairs at a time.

## Weighted Interval Scheduling Problem

Given a list of jobs where each job has a start and finish time, and also has profit associated with it, find maximum profit subset of non-overlapping jobs.

## Box Stacking Problem

Given a set of rectangular 3D boxes, create a stack of boxes which is as tall as possible. A box can be placed on top of another box if the dimensions of the 2D base of the lower box are each strictly larger than those of the 2D base of the higher box. Multiple instances …

## Count all paths in a matrix from first cell to last cell

Given a M x N rectangular grid, efficiently count all paths starting from the first cell (0,0) to the last cell (N-1,M-1) in the grid. We can either move down, or move towards right from a cell.

## Find minimum cuts needed for palindromic partition of a string

Given a string, find minimum cuts needed to partition it such that each partition is a palindrome.

## Maximum Length Snake Sequence

Given a square matrix, print maximum length snake sequence in it. A Snake sequence is defined as a sequence of numbers where each new number, which can only be located to the right or down of the current number, is either plus or minus one.

## Word Break Problem | Using Trie Data Structure

Given a string and a dictionary of words, determine if string can be segmented into a space-separated sequence of one or more dictionary words.

## Longest Decreasing Subsequence Problem

The longest decreasing subsequence problem is to find a subsequence of a given sequence in which the subsequence’s elements are in sorted order, highest to lowest, and in which the subsequence is as long as possible.

## Find maximum profit earned from at most two stock transactions

Given a list containing future prediction of share prices, find maximum profit that can be earned by buying and selling shares at most twice with a constraint that a new transaction can only start after previous transaction is complete. i.e. we can only hold at most one share at a time.