## Flood Fill Algorithm

Flood fill (also known as seed fill) is an algorithm that determines the area connected to a given node in a multi-dimensional array.

## Find all occurrences of given string in a character matrix

Given a M x N matrix of characters, find all occurrences of a given string in the matrix. We are allowed to search the string in all eight possible directions i.e. North, West, South, East, North-East, North-West, South-East, South-West. Note that there should not be any cycles in the output path.

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

Given a N x N matrix of positive integers, find a path from the first cell of the matrix to its last cell.

## Find first k maximum occurring words in given set of strings

Given a huge set of strings with duplicate strings present, find first k-maximum occurring words in it.

## Find maximum occurring word in given set of strings

Given a huge set of strings with duplicate strings present, find the maximum occurring word in it. If two words have same count, return any one of them.

## Lexicographic sorting of given set of keys

Lexicographic sorting: Given a set of strings, print them in Lexicographic order (dictionary/alphabetical order).

## Check if given Graph is Strongly Connected or not

Given a directed graph, check if it is strongly connected or not. A directed graphs is said to be strongly connected if every vertex is reachable from every other vertex.

## Check if given digraph is a DAG (Directed Acyclic Graph) or not

Given an directed graph, check if it is a DAG (Directed Acyclic Graph) or not. A DAG is a digraph (directed graph) that contains no cycles.

## 2-Vertex Connectivity in the graph

Given a undirected connected graph, check if the graph is 2-vertex connected or not.   A connected graph G is said to be 2-vertex-connected (or 2-connected) if it has more than 2 vertices and remains connected on removal of any vertices. Any such vertex whose removal will disconnected the graph is called Articulation point.

## 2-Edge Connectivity in a Graph

Given a undirected connected graph, check if the graph is 2-edge connected or not.

## Determine if an undirected graph is a Tree (Acyclic Connected Graph)

Given an undirected graph, check if is is a tree or not. In other words, check if given undirected graph is a Acyclic Connected Graph or not.

## Check if an undirected graph contains cycle or not

Given an connected undirected graph, find if it contains any cycle or not.