如何解决涉及传入的数字或字符流的问题

时间:2015-01-08 13:02:58

标签: algorithm

我遇到了很多面试问题,其中输入是以数字或字符输入的形式输入的。例如: 1.找到输入数字流的中位数。 2.从传入流中选择一个随机数。

那么说它是一个传入的流而不是说你有这些数字开头有什么意义呢?

1 个答案:

答案 0 :(得分:2)

这可能意味着几件事:

  1. 元素数量太大,无法将它们全部保存在主内存中。你不知道它们中有多少。

  2. 每个元素只能处理一次。当我们得到一组数字时,我们可以多次遍历它。流不是这种情况。

  3. 1.和2的组合可以使问题变得更加困难。有时候它无法得到准确的答案。例如,找到数组的中位数非常简单。但是,在一般情况下,找不到任意数字流中的精确中位数是不可能的(当然,如果我们不能将它们全部保存在主存储器中)。但是,仍有可能估计它。还有一个例子:从流中选择一个随机数,以便选择每个元素的概率是相同的(这里有一个精确的解决方案,说不明显)。而且,阵列很容易。

    总而言之,流通常意味着您只能看到每个元素一次,并且您无法将它们全部存储在主存储器中,这会使许多问题变得更加困难。