/* average case O(nk) solution */
int main(vector<int> a) {
vector<int> subseq;
int i, tmp;
for (i = 0; i < a.size(); i++) {
tmp = lower_bound(subseq.begin(), subseq.end(), a[i]) - subseq.begin();
if (tmp >= subseq.size())
subseq.push_back(a[i]);
else
subseq[tmp] = a[i];
}
return subseq.size();
}Longest Increasing Subsequence Average time O(nlogk) Solution
最新推荐文章于 2025-12-06 09:52:47 发布
本文介绍了一个高效的算法实现,用于寻找输入整数序列中最长的递增子序列。该算法采用C++编写,利用了lower_bound函数来优化搜索过程,并在平均情况下达到了O(nk)的时间复杂度。
626

被折叠的 条评论
为什么被折叠?



