## 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.

## Reverse a Doubly Linked List

In this post, we will see how to reverse a doubly linked list using iteration and recursion.

## Construct a full binary tree from a preorder and postorder sequence

A full binary tree is a tree in which every node has either 0 or 2 children. Write an efficient algorithm to construct a full binary tree from given preorder and postorder sequence.

## 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 index that divides an array into two non-empty subarrays of equal sum

Given an array of integers, find an index that divides the array into two non-empty subarrays having equal sum.

Given a linked list, pairwise swap its adjacent nodes. The swapping of data is not allowed, only links should be changed.

## Depth first search (DFS) vs Breadth first search (BFS)

In this post, we will see the difference between Depth first search (DFS) and Breadth first search (BFS) algorithm which are used to traverse/search tree or graph data structure.

## Implement two stacks in a single array

In this post, we will discuss how to efficiently implement two stacks in a single array.

## Count subtrees in a BST whose nodes lies within a given range

Given a BST, count subtrees in it whose nodes lies within a given range.   For example, consider below BST. The number of subtrees with nodes in the range [5, 20] are 6.