TheAlgorithms/C++ 1.0.0
All the algorithms implemented in C++
|
Calculate the length of the longest increasing subsequence in an array. More...
#include <cassert>
#include <climits>
#include <cstdint>
#include <iostream>
#include <vector>
Go to the source code of this file.
Namespaces | |
namespace | dynamic_programming |
Dynamic Programming algorithms. | |
Functions | |
uint64_t | dynamic_programming::LIS (const std::vector< uint64_t > &a, const uint32_t &n) |
Calculate the longest increasing subsequence for the specified numbers. | |
static void | test () |
Self-test implementations. | |
int | main (int argc, char const *argv[]) |
Main function. | |
Calculate the length of the longest increasing subsequence in an array.
In computer science, 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. Longest increasing subsequences are studied in the context of various disciplines related to mathematics, including algorithmics, random matrix theory, representation theory, and physics. The longest increasing subsequence problem is solvable in time O(n log n), where n denotes the length of the input sequence.
Definition in file longest_increasing_subsequence.cpp.
int main | ( | int | argc, |
char const * | argv[] ) |
Main function.
argc | commandline argument count (ignored) |
argv | commandline array of arguments (ignored) |
Definition at line 81 of file longest_increasing_subsequence.cpp.
|
static |
Self-test implementations.
< The longest increasing subsequence is {2,3,4,5,8}
Definition at line 64 of file longest_increasing_subsequence.cpp.