# Category: DP

## Longest Bitonic Subsequence

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

## Longest Increasing Subsequence using Dynamic Programming

The longest increasing subsequence problem is to find a subsequence of a given sequence in which the subsequence’s elements are in sorted order, lowest to highest, and in which the subsequence is as long as possible. This subsequence is not necessarily contiguous, or unique.

Read More Longest Increasing Subsequence using Dynamic Programming

## Shortest Common Supersequence using LCS

The shortest common supersequence (SCS) is the problem of finding the shortest supersequence Z of given sequences X and Y such that both X and Y are subsequences of Z.

Read More Shortest Common Supersequence using LCS

## Shortest Common Supersequence | Finding all SCS

The shortest common supersequence (SCS) is the problem of finding the shortest supersequence Z of given sequences X and Y such that both X and Y are subsequences of Z.

Read More Shortest Common Supersequence | Finding all SCS

## Longest Repeated Subsequence problem

The longest repeated subsequence (LRS) problem is the problem of finding the longest subsequences of a string that occurs at least twice.

Read More Longest Repeated Subsequence problem

## Longest Common Substring problem

The longest common substring problem is the problem of finding the longest string (or strings) that is a substring (or are substrings) of two strings.

Read More Longest Common Substring problem

## Longest Common Subsequence | Introduction & LCS Length

The longest common subsequence (LCS) problem is the problem of finding the longest subsequence that is present in given two sequences in the same order. i.e. find a longest sequence which can be obtained from the first original sequence by deleting some items, and from the second original sequence by deleting other items.

Read More Longest Common Subsequence | Introduction & LCS Length

## Introduction to Dynamic Programming

Dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions using a memory-based data structure (array, map,etc). Each of the subproblem solutions is indexed in some way, typically based on the values of …

Read More Introduction to Dynamic Programming