//! Longest Increasing Subsequence (LIS, Generic, Production-Grade)
//!
//! Finds the length of the longest increasing subsequence in a sequence.
//!
//! # Type Parameters
//! * `T`: Value type. Must implement `PartialOrd` + `Copy`.
//!
//! # Example
//! ```rust
//! use pofk_algorithm::dp_algorithms::longest_increasing_subsequence::*;
//! let arr = vec![10, 9, 2, 5, 3, 7, 101, 18];
//! assert_eq!(longest_increasing_subsequence(&arr), 4);
//! ```