我在一个在线代码测验网站上,这个网站有一个复杂度限制,即代码的时间和内存复杂度都不应超过 O(N),其中 N 是向量 A
的大小。我的代码完整如下:
int foo(int X, const std::vector<int> &A) {
auto N = A.size();
auto total_hit = std::count(A.cbegin(), A.cend(), X);
auto K = N - total_hit;
if (K < 0 || K >= N){
return -1;
}
return K;
}
我得到了一个超出时间复杂度的结果。除了他们搞错了,还有其他可能吗?