假设我们有多个整数数组。您可以将每个数组视为一个级别。我们试图找到一系列元素,每个数组中只有一个元素,然后用相同的谓词继续下一个数组。例如,我们有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++来做,但我只是需要这个想法。
谢谢,
您需要_algorithm_,而不是_pattern_。这将是一个_problem_的解决方案。 – ima 2010-03-19 21:37:51
这里存在一个问题:看起来你的谓词可以是任意复杂的,因此可以同时对N个数组进行操作......很难想出一个解决方案可以用于整个事情。 – 2010-03-20 12:54:32
另外,是否有重复的可能性,如果有的话,你如何处理它们(你想要为每个副本提供1个解决方案,还是只需要一个解决方案?) – 2010-03-20 12:55:17