231. Longest Increasing Subsequence

Hard · Dynamic Programming

Given an unsorted array of integers, return the length of the longest strictly increasing subsequence.

A subsequence is a sequence derived from the array by deleting some or no elements without changing the order of the remaining elements.

Examples

Example 1
Input: nums = [10, 9, 2, 5, 3, 7, 101, 18]
Output: 4
Explanation: LIS is [2, 3, 7, 101] or [2, 3, 7, 18]
Example 2
Input: nums = [0, 1, 0, 3, 2, 3]
Output: 4
Explanation: [0,1,2,3]

Constraints