浅谈LIS算法(Longest Increasing Subsequence)

简介

LIS(Longest Increasing Subsequence):最长上升(不下降)子序列,有两种算法复杂度为O(n*logn)和O(n^2)。这种算法只能得到最终的数据个数,但是如果
需要得到具体的内容就不行了。由于第一种算法使用了2个for循环,所以算法的复杂度为O(n^2),该算法比较简洁易懂,但是复杂度较高。而第二种算法使用了一个for循
环和二分法,算法的复杂度为O(nlogn)。此算法虽稍微复杂,但是复杂度降了下来,在需要运算时间的情况下优先选择第二种算法。

思路以及代码详解

Talking with Catalan

序言

由于卡特兰数在很多公司的面试题中频繁出现,在竞赛中更是多次考察,所以特地总结下卡特兰数的应用。

定义

卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。

原理

|