How to find the smallest missing number from an unsorted vector in C++

1 Answer

0 votes
#include <iostream>
#include <vector>
#include <unordered_set>
#include <iterator>

int findSmallestMissingNumber(std::vector<int> const &v) {
    std::unordered_set<int> us(v.begin(), v.end());

    int index = 1;
    while (true) {
        if (us.find(index) == us.end()) {
            return index;
        }
        index++;
    }
}
 
int main()
{
    std::vector<int> v = { 1, 5, 2, 7, 4, 9, 12 };
 
    std::cout << findSmallestMissingNumber(v);
 
    return 0;
}




/*
run:
 
3
 
*/

 



answered Nov 22, 2021 by avibootz
...