diff --git a/dynamic_programming/longest_increasing_subsequence.py b/dynamic_programming/longest_increasing_subsequence.py new file mode 100644 index 000000000000..37ddef207257 --- /dev/null +++ b/dynamic_programming/longest_increasing_subsequence.py @@ -0,0 +1,12 @@ +""" +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)