[codility]Prefix-set

这题很简单,一开始用了set。但后来一想这样其实是n*logn的,而且没有利用所有的数都在0..N-1之间。那么可以直接用vector当hashset。

// you can also use includes, for example:
// #include <algorithm>
int solution(const vector<int> &A) {
    // write your code in C++98
    vector<bool> hashset;
    int n = A.size();
    hashset.resize(n, false);
    int cover = -1;
    for (int i = 0; i < n; i++) {
        if (!hashset[A[i]]) {
            cover = i;
            hashset[A[i]] = true;
        }
    }
    return cover;       
}

  

原文地址:https://www.cnblogs.com/lautsie/p/3424468.html