Arrays 给定数组中的最小正缺失整数

Arrays 给定数组中的最小正缺失整数,arrays,time,time-complexity,Arrays,Time,Time Complexity,我想从时间复杂度为“n”的数组中查找缺少的最小正整数。可能吗?例如,设{-3,-6,1,-9,4,6,0}为数组,则最小正整数为2。创建另一个数组来存储找到的变量如何。在这个数组中,数字可以是它的索引,如果找到它,则存储为布尔值。然后你通过数组查看哪一个没有找到。你的描述很离奇,所以我可能无法准确地解决它,但它可能会让你更接近 bool arr_check [ARR_SIZE]; // whick numbers has been found. for (int i=0; i<ARR

我想从时间复杂度为“n”的数组中查找缺少的最小正整数。可能吗?例如,设{-3,-6,1,-9,4,6,0}为数组,则最小正整数为2。

创建另一个数组来存储找到的变量如何。在这个数组中,数字可以是它的索引,如果找到它,则存储为布尔值。然后你通过数组查看哪一个没有找到。你的描述很离奇,所以我可能无法准确地解决它,但它可能会让你更接近

bool arr_check [ARR_SIZE];    // whick numbers has been found.
for (int i=0; i<ARR_SIZE; i++)
    if(arr[i]>0)
        arr_check[arr[i]] = true;
for (int i=0; i<ARR_SIZE; i++)
    if (!arr_check[i])
        return i;

你只需要扫描一个数组两次,这使得它的复杂性为2N,对吗?如果不先对它进行排序,你就得不到更快的速度,这比N更重要

你只是想要一个语言无关的算法吗?或者您是否需要特定语言实现方面的帮助?请编辑您的问题以相应地标记。但是,即使你想要一个语言不可知的,有效的标记算法,也是有效的标记,你仍然必须告诉我们你尝试了什么,你研究了什么,并向我们表明你在这个问题上付出了一些努力。这将给你数组中最小的正整数,但我们必须找到丢失的最小正整数。你可以查一下例子啊,对不起,我修改了我的答案。希望这是你需要的。