【发布时间】:2020-07-09 21:40:14
【问题描述】:
我试图找到一个目标总和可以从 Python 中的无限数字流中找到。数字是正数(数字> 0),唯一且数字是不确定的。我相信答案是使用动态编程或堆,但不能完全弄清楚逻辑。
关于可能的数据结构或逻辑流程的任何帮助。
非常感谢。
例如
nums = [ 99,85,1,3,6,72,7,9,22,....]
targetSum = 27
output: True
Explanation: 1+6+22 = 27(targetSum)
【问题讨论】:
-
你确定你的意思是无限吗?我认为您的意思是数字列表。
-
你好,是的,从连续数字流的意义上说是无限的。我们不知道流的长度。
-
您希望我们为您实现一个算法,该算法从有限列表中确定一组成员,添加的结果是 targetSum?到目前为止你尝试了什么?如果 nums 是有限的(带有
n元素),请尝试以下操作: - 尝试所有n可能性 从列表中挑选一个条目,看看它是否是targetSum- 从列表中挑选两个条目,看看是否它的总和是targetSum如果没有找到结果,请尝试 3 个条目,...直到您尝试了 n 个条目。看看模块itertools有combinations功能,对你有帮助 -
你的意思是
indefinite(未定义/长度未知,它未定义)或infinite该列表将不适合内存,因为到目前为止总是有另一个成员您没有访问在里面) -
嗨@gelonida,感谢您提供可能的解决方案。我的意思是无限的,其中列表不适合内存。如果可以就如何解决这个问题提出一个逻辑建议,那就太好了。
标签: python algorithm stream sum logic