IntegerTracker类是一个用于跟踪整数的类,它提供了以下方法:
这些方法的设计要求在O(1)的运行时复杂度下完成。
为了实现这个类,我们可以使用以下数据结构和算法:
下面是IntegerTracker类的实现:
class IntegerTracker:
def __init__(self):
self.numbers = []
self.counts = {}
self.max_num = float('-inf')
self.min_num = float('inf')
def add(self, num):
self.numbers.append(num)
self.counts[num] = self.counts.get(num, 0) + 1
self.max_num = max(self.max_num, num)
self.min_num = min(self.min_num, num)
def get_max(self):
return self.max_num
def get_min(self):
return self.min_num
def get_mean(self):
return sum(self.numbers) / len(self.numbers)
def get_mode(self):
mode = max(self.counts, key=self.counts.get)
return mode
这个实现中,add方法将整数添加到numbers列表中,并更新counts字典中对应整数的出现次数。同时,它也会更新max_num和min_num变量。
get_max方法返回max_num变量的值,即跟踪器中的最大整数。
get_min方法返回min_num变量的值,即跟踪器中的最小整数。
get_mean方法通过计算numbers列表中所有整数的总和除以整数的个数,得到平均值。
get_mode方法通过在counts字典中找到值最大的键,即出现次数最多的整数。
这样,IntegerTracker类就能够在O(1)的运行时复杂度下提供add、get_max、get_min、get_mean和get_mode方法的功能。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云