Algorithm 输入流的最大、最小平均值

Algorithm 输入流的最大、最小平均值,algorithm,data-structures,Algorithm,Data Structures,我得到一个输入流和两个索引(I&j),在这两个索引之间,您需要计算所有数字的最小值、最大值和平均值。您应该使用哪种数据结构?我应该如何计算值?这里几乎任何数据结构都可以-当然取决于语言。根据语言的不同,列表可能是最快实现的。计算最小值、最大值和平均值非常简单——遍历您的值。取每个值并将其与当前的最小值和最大值进行比较-如果它高于最大值或低于最小值,则替换该值,然后将该值添加到运行总数中,以达到平均值的目的。一个非常简单的解决方案是使用简单数组 数组1:Input您只需将输入存储在下一个索引中 数

我得到一个输入流和两个索引(I&j),在这两个索引之间,您需要计算所有数字的最小值、最大值和平均值。您应该使用哪种数据结构?我应该如何计算值?

这里几乎任何数据结构都可以-当然取决于语言。根据语言的不同,列表可能是最快实现的。计算最小值、最大值和平均值非常简单——遍历您的值。取每个值并将其与当前的最小值和最大值进行比较-如果它高于最大值或低于最小值,则替换该值,然后将该值添加到运行总数中,以达到平均值的目的。

一个非常简单的解决方案是使用简单数组

数组1:Input您只需将输入存储在下一个索引中

数组2:Sum:Sum[i]=input+input[2]+…+输入[i]

这使得平均速度很快。O(1),但最坏情况下的最小值和最大值仍然是O(N)


如果您需要其他内容,可以使用,并在O(logn)时间内完成所有查询。插入也变成O(logn)

似乎相当简单。你试过自己解决吗?我们能看看你的尝试吗?如果有大量的索引对,那会很有趣。前缀和RMQ,很好。但对于一对索引来说,这绝对是微不足道的。