【发布时间】:2018-10-06 09:16:58
【问题描述】:
在一次采访中得到了这个。该问题与非常著名的问题Find a triplet that sum to a given value 非常相似,略有不同。在这里,我们要打印 ALL 三元组,而不仅仅是一个。
数组可以包含重复项。
例如考虑以下数组:
[1, -1, 2, 0, -2, 4, -2, -2, 4]
输出应该是:
[1, -1, 0]
[4, -2, -2]
[2, -2, 0]
三元组的顺序或三元组中数字的顺序并不重要。
使用排序或使用集合有 n^2 个解决方案(如上面链接中的解决方案)。但是如何确保我们只打印独特的三元组呢?我能想到的一个解决方案是使用一组来跟踪我们到目前为止看到的三元组。但不确定这是否是最好的方法,或者是否有其他解决方案使用排序等来生成独特的三元组。
【问题讨论】:
标签: algorithm