创建数据结构以检查对和与 Python 中的值相同的程序
假设我们想要创建一个具有两种方法的数据结构-
add(val)这将值val添加到数据结构
find(val)这将检查是否有两个元素的总和为val
我们必须设计它,以便我们可以即时获得结果。每次有查询时,我们不会搜索数字。
所以,如果输入就像创建一个对象obj并添加几个数字6,14,3,8,11,15,然后检查像obj.find(9),obj.find(11),obj.find(15),那么输出将是True,True,False因为9可以用6+3形成,11可以用3+8形成。现在数据结构中存在15,但没有两个数字的总和与15相同。
示例
让我们看看以下实现以获得更好的理解-
class PairSumChecker: def __init__(self): self.nums= set() self.multiple= set() def add(self, val): if val in self.nums: self.multiple.add(val) else: self.nums.add(val) def find(self, val): for n in self.nums: if n + n == val: return n in self.multiple elif val - n in self.nums: return True return False obj = PairSumChecker() obj.add(6) obj.add(14) obj.add(3) obj.add(8) obj.add(11) obj.add(15) print(obj.find(9)) print(obj.find(11)) print(obj.find(15))
输入
print(obj.find(9)) print(obj.find(11)) print(obj.find(15))输出结果
True True False