【发布时间】:2015-03-27 02:16:04
【问题描述】:
我知道如何找到一组两个数字。我可以对从 0 到 X-1 的所有数字进行排序。将指针 P1 放在 0 处,将 P2 放在 X-1 处,每走一步,P1 加 1,P2 减 1。 如何开始找到所有 4 个数字的集合?
【问题讨论】:
标签: algorithm data-structures language-agnostic numbers
我知道如何找到一组两个数字。我可以对从 0 到 X-1 的所有数字进行排序。将指针 P1 放在 0 处,将 P2 放在 X-1 处,每走一步,P1 加 1,P2 减 1。 如何开始找到所有 4 个数字的集合?
【问题讨论】:
标签: algorithm data-structures language-agnostic numbers
一个(许多)简单的解决方案:一个递归函数,它生成一个数字并使用另一个修改了 x 的调用作为下一个。伪代码:
generate(x, digits, current[])
{
if digits < 1
print all current´s in one (single) line
return
for every i from 0 to x
add i as new element to current
generate (x - i, digits - 1, current)
remove the last element of current again
}
当前是一些列表,数组等,第一次调用时为空。
x 是数字和数字,例如。 4 在第一次通话中。
【讨论】: