【发布时间】:2011-01-29 14:45:21
【问题描述】:
假设我们有多个整数数组。您可以将每个数组视为一个级别。我们尝试从每个数组中找到一个元素序列,恰好是一个元素,然后使用相同的谓词继续下一个数组。例如,我们将v1, v2, v3 作为数组:
v1 | v2 | v3
-----------------
1 | 4 | 16
2 | 5 | 81
3 | 16 | 100
4 | 64 | 121
我可以说谓词是:next_element == previous_element^2
上述示例中的有效序列是:2 -> 4 -> 16
实际上,在这个例子中没有另一个有效的序列。
我可以写三个循环来暴力破解上面提到的例子,但是如果数组的数量是可变的,但是当然知道顺序,你将如何解决这个问题?
非常感谢提示或对设计模式的引用。我将在 C++ 中完成,但我只需要这个想法。
谢谢,
【问题讨论】:
-
你需要的是算法,而不是模式。这将是一个问题的解决方案。
-
这里有一个问题:您的谓词似乎可以任意复杂,因此可以同时处理 1 到 N 个数组......很难想到一个可以处理整个事情的解决方案.
-
另外,是否有重复的可能性,如果有,您如何处理它们(您想要每个重复的 1 个解决方案,或者只喜欢一个解决方案?)