/* 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
最新推荐文章于 2024-08-12 16:55:46 发布