Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找未排序数组中所有缺失数字的最快方法是什么_Java_Arrays_Algorithm_Sorting - Fatal编程技术网

Java 查找未排序数组中所有缺失数字的最快方法是什么

Java 查找未排序数组中所有缺失数字的最快方法是什么,java,arrays,algorithm,sorting,Java,Arrays,Algorithm,Sorting,我找到了这个答案:,当你只缺少一个号码时,这很好 关于这个问题,我想知道找到所有缺失的数字以及对未排序的数组进行排序的最佳(最快)方法是什么。(例如,该数组类似于链接问题中描述的数组-数组大小为100,随机数为1-100,但其中一些缺失)显然,这些数字在一定范围内,或者谈论缺失的数字没有意义。因此,可以应用。然后对阵列进行线性扫描以找到孔。或者,您可以扫描排序步骤中的计数以查找缺少的元素 这一切都在O(n)中运行 例如: 下面的数组是6,1,7,8,3,4,9,1,10,3 现在,通过遍历数组一

我找到了这个答案:,当你只缺少一个号码时,这很好


关于这个问题,我想知道找到所有缺失的数字以及对未排序的数组进行排序的最佳(最快)方法是什么。(例如,该数组类似于链接问题中描述的数组-数组大小为100,随机数为1-100,但其中一些缺失)

显然,这些数字在一定范围内,或者谈论缺失的数字没有意义。因此,可以应用。然后对阵列进行线性扫描以找到孔。或者,您可以扫描排序步骤中的计数以查找缺少的元素

这一切都在O(n)中运行

例如: 下面的数组是6,1,7,8,3,4,9,1,10,3

现在,通过遍历数组一次并增加遇到的每个数字的计数,计算每个数字在数组中出现的频率:

number 1  2  3  4  5  6  7  8  9 10
count  2  0  2  1  0  1  1  1  1  1
您会立即看到2和5出现了0次,因此丢失了

计数也可用于生成排序数组:我们需要2乘以1、2乘以3、1乘以4,依此类推

1  1  3  3  4  6  7  8  9 10

“我一直在想,找到所有缺失的数字以及对未排序的数组进行排序的最佳(也是最快)方法是什么”-两者同时进行?或者独立的“最快排序”和“最快缺少数字”?我的错误-我指的是缺少数字的最快排序。我不认为我们可以做得比O(n)更好,因为至少有一次我们必须遍历整个数组,无论是为了排序还是查找缺少的数字。请在发布问题之前使用搜索功能。这已经被问过很多次了。@m69-相信我,我问过了。这种问题以前没有问过。你标记为重复的问题不是这样的,我在问题中提到了我自己,注意到我的问题是不同的,因此,与其获得拉比分数,不如找一些对多索里更重要的东西,因为不清楚(我编辑了这个问题)。假设我有一个数组,数组中有10个从1到10的数字,例如缺少“2”和“5”数字。你能举个例子吗?这个例子很好!我不明白一件小事。你提到过“一切都在O(n)上运行”——但我不明白为什么。首先,你应该遍历数组,计算每个数字出现的频率,这已经是O(n),然后当完成时,你应该遍历并找到“洞”,这是另一个O(n),对吗?所以我们来到了O(n)^2。如果我们想对它进行排序,它是另一个O(n)。我弄错了吗?几乎是对的,但是O(n)+O(n)仍然是O(n),所以我们总共得到了O(n)+O(n)+O(n),这等于O(n)。