给定一个整数流(我只能通过它们一次),找到最大值和最小值的最佳解决方案是什么?我想如果我有足够的时间来处理每个数字,最简单的解决方案是简单地将min和max值保存在一个单独的变量中,但如果我无法处理它们中的每一个,最好的方法是什么?有没有更好的解决方案,而不仅仅是保持最大和最小变量,并跳过例如每隔一个数字?
答案 0 :(得分:0)
如果你想要真正的最大值和最小值,只需用变量跟踪它们。
根据您的输入数据,概率最小值/最大值可能“足够准确”。因此,如果你只看50%几率的每个数字,那么你可能只有50%具有确切的最小值或最大值。但也许已经有75%的机会至少有第二大/最小等。然而,计算随机数进行无偏采样已经比查看所有数字的最小值/最大值更昂贵。每秒跳过都很危险:数据中可能存在偶数/奇数模式,这会严重影响你。