📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 11 月 – III |问题 9(1)

📅  最后修改于: 2023-12-03 14:54:51.726000             🧑  作者: Mango

UGC-NET CS 2017年11月 - III | 问题 9

简介

UGC-NET CS 2017年11月 - III问题9是一道编程问题,要求编写一个程序来实现特定功能。

问题描述

问题9要求实现一个程序,该程序将接收一个数据流,并根据以下操作给出结果:

  1. 实现一个add()函数,该函数用于将新元素添加到数据流中。
  2. 实现一个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的解决方案和使用示例。希望对程序员有所帮助!