std::lower_bound
和std::upper_bound
函数的复杂性是什么。
我知道万一std::set<int>
是log(n)
,但我不知道std::vector<int>
。
我正在使用向量和std::lower_bound
.
这段代码的复杂度是多少?
int LIS2(vector<int> a) {
vector<int> v;
for (int i = 0; i < a.size(); i++) {
auto it = lower_bound(v.begin(), v.end(), a[i]);
if (it != v.end())
*it = a[i];
else
v.push_back(a[i]);
}
return v.size();
}