zoukankan      html  css  js  c++  java
  • PAT A1144 The Missing Number (20 分)——set

    Given N integers, you are supposed to find the smallest positive integer that is NOT in the given list.

    Input Specification:

    Each input file contains one test case. For each case, the first line gives a positive integer N (105​​). Then N integers are given in the next line, separated by spaces. All the numbers are in the range of int.

    Output Specification:

    Print in a line the smallest positive integer that is missing from the input list.

    Sample Input:

    10
    5 -25 9 6 1 3 4 2 5 17
    

    Sample Output:

    7
    
     
    #include <stdio.h>
    #include <algorithm>
    #include <limits.h>
    #include <set>
    using namespace std;
    int main() {
        int n;
        scanf("%d", &n);
        set<int> st;
        for (int i = 0; i < n; i++) {
            int tmp;
            scanf("%d", &tmp);
            if (tmp > 0) {
                st.insert(tmp);
            }
        }
        int j = 1;
        for (auto it = st.begin(); it != st.end(); it++) {
            if (*it > j) {
                printf("%d", j);
                break;
            }
            else j++;
        }
        if(j==st.size()+1)printf("%d",j);
    }

    注意点:这里只保证了输入数不超过int大小,用hash不好做,不如直接用set,自动升序排列,找到第一个不满足的数。

    第二个坑是测试点2-5都是输入数据连续的,缺失的是输入数据后面那个数

    ---------------- 坚持每天学习一点点
  • 相关阅读:
    迷宫的最短路径(bfs)
    INNODB引擎概述
    mysql-innodb的事务日志
    python-set集合
    一个python代码练习
    关于arm 的字节对齐
    学习嵌入式为什么要有uboot(深度解析)
    uboot 添加 自定义命令
    关于UBOOT,LINUX内核编译,根文件系统的15个小问题
    s5p6818 Overview
  • 原文地址:https://www.cnblogs.com/tccbj/p/10409113.html
Copyright © 2011-2022 走看看