Python/dynamic_programming/longest_increasing_subsequence.py

13 lines
489 B
Python
Raw Normal View History

"""
The Longest Increasing Subsequence (LIS) problem is to find the length of the longest subsequence of a given sequence such that all elements of the subsequence are sorted in increasing order. For example, the length of LIS for {10, 22, 9, 33, 21, 50, 41, 60, 80} is 6
"""
def LIS(arr):
n= len(arr)
lis = [1]*n
for i in range(1, n):
for j in range(0, i):
if arr[i] > arr[j] and lis[i] <= lis[j]:
lis[i] = lis[j] + 1
return max(lis)