标签:
算法原理很简单,不再赘述,这里贴一个函数模板,传入的参数为序列首尾元素的指针。
template<typename T> int LIS_nlogn(T * s, T * e) { if (s > e) return 0; T g[e - s + 5]; int ret = 0; memset(g, 0, sizeof(g)); for (T * i = s; i <= e; i++) { if (g[ret] < (*i)) { g[++ret] = (*i); continue; } int l = 1, r = ret, mid; while (l < r) { mid = (l + r) >> 1; if ((*i) < g[mid]) r = mid; else l = mid + 1; } g[l] = (*i); } return ret; }
标签:
原文地址:http://www.cnblogs.com/dramstadt/p/5759426.html