题解 | #序列找数# 集合简单使用

序列找数

https://www.nowcoder.com/practice/a7d1856a72404ea69fdfb5786d65539c

使用无序集合存入每个输入的数,再从0~n里查找没有的数

#include <iostream>
#include <unordered_set>
using namespace std;

int main() {
    int num;
    unordered_set<int> st;
    while (cin >> num) {
        st.insert(num);
    }
    int n=st.size()+1;
    for (int i=0; i<n; i++) {
        if (st.find(i)==st.end()) {
            cout << i <<endl;
            break;
        }
    }
    return 0;
}

时间复杂度:无序集合的插入和查找为O(1),遍历0~n为O(n),总共为O(n)

空间复杂度:用于集合的开销,O(n)

全部评论

相关推荐

04-14 12:52
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务