最长上升子序列LIS问题属于动态规划的初级问题,用纯动态规划的方法来求解的时间复杂度是O(n^2).但是如果加上二叉搜索的方法,那么时间复杂度可以降到nlog(n). 具体分析参考:http://blog.chinaunix.net/uid-26548237-id-3757779.html 代码: #include <iostream> using namespace std; int LIS_nlogn(int *arr, int len) { int *LIS = new int[len…
/** * @brief longest common subsequence(LCS) * @author An * @data 2013.8.26 **/ #include <iostream> #include <string> using namespace std; enum Direction { Zero, LeftUp, Up, Left }; static int m; // length of the first sequence static int n; /…