Codility PermMissingElem解决方案估计复杂性

时间:2014-07-14 06:23:30

标签: c++ permutation

经过一段时间的练习后,我已经找到了一个傻瓜式(没有缓冲区溢出等)算法,如下所示:

int solution(vector<int> &A) {
    long long sum = 0;
    int size = A.size();
    if (size == 0) return 1;

    for (int i = 0; i < size; ++i)
    {
        sum = sum + i+1 - A[i];
    }

    sum += size+1;

    if (sum == 0) 
        return (size+1);
    else
        return sum;
}

然而,Codility给出的检测时间复杂度是:

Detected time complexity:
O(N) or O(N * log(N))

从我的代码我看不到为什么会O(N * log(N))。如果您有任何解释,我将非常感激。谢谢。

0 个答案:

没有答案