在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 相同。
为了解决问题,我们将执行以下步骤 –
- 定义构造器。
- nums:一个新集合。
- multiple:一个新的集合。
- 定义add()函数。这将获取val
- 将val插入multiple
- 否则,
- 将val插入nums中。
- 定义一个函数find()。这将获取val
- 对于nums中的每个n,请执行以下操作:
- 如果n+n与val相同,则
- 当n在multiple中时,返回true
- 否则,当val-n在nums中时,则
- 返回True
- 如果n+n与val相同,则
- 返回False
示例
让我们看一下以下实现,以更好的了解 –