📅  最后修改于: 2023-12-03 14:54:51.726000             🧑  作者: Mango
UGC-NET CS 2017年11月 - III问题9是一道编程问题,要求编写一个程序来实现特定功能。
问题9要求实现一个程序,该程序将接收一个数据流,并根据以下操作给出结果:
add()
函数,该函数用于将新元素添加到数据流中。findMedian()
函数,该函数用于返回数据流中的中位数。下面是一个示例解决方案的代码。请注意,这只是一个参考实现,您可以根据自己的需求来编写代码。
class MedianFinder:
def __init__(self):
self.nums = []
def add(self, num):
i = 0
while i < len(self.nums) and num > self.nums[i]:
i += 1
self.nums.insert(i, num)
def findMedian(self):
n = len(self.nums)
middle = n // 2
if n % 2 == 0:
return (self.nums[middle-1] + self.nums[middle]) / 2
else:
return self.nums[middle]
以下是使用示例代码的代码片段:
median_finder = MedianFinder()
median_finder.add(1)
median_finder.add(2)
median_finder.add(3)
median = median_finder.findMedian()
print(median) # 输出: 2
median_finder.add(4)
median = median_finder.findMedian()
print(median) # 输出: 2.5
上面的示例代码创建了一个MedianFinder
对象,并调用add()
函数将一系列数值添加到数据流中。然后通过调用findMedian()
函数来获取中位数。第一个示例中,数据流为[1, 2, 3],中位数为2。第二个示例中,数据流为[1, 2, 3, 4],中位数为(2+3)/2 = 2.5。
以上是UGC-NET CS 2017年11月 - III问题9的解决方案和使用示例。希望对程序员有所帮助!