假设我们有组1、2、3,因此可能的子组是:
{1,2,3}
{1} {2,3}
{1,2} {3}
{1,3} {2}
{1} {2} {3}
你明白了。在
我必须用递归来做。到目前为止我所拥有的(不起作用),而且有点不同。
这个想法是你有一个代表立方体的整数的列表(用来建造一座塔),并且你想要建造尽可能多的具有一定高度的塔。假设你得到了
立方体[5,2,6,6,1,1,4]
,你想要的高度是7
,那么最好的构建是[5,2] [6,1] [6,1] [4]
。在
代码:
^{pr2}$
但我只得到[5,2] [6,1]
。有什么想法吗?在
Tags:
你的主要问题是你没有重复你没有使用的值,例如: 先拿5,2 比6,6,但不好,所以你跳过,然后取6,1 但你再也不会拿前6个了,再得到一个6,1的连击。 这就是为什么你必须重复所有的值后,你选择一个组合。在
代码(可能更好,用你的逻辑):
我并不是说下面的方法是有效的,但它为您提供了一个如何递归构建结果的想法:
这里有一个使用递归的简单方法。其思想是,对于由
x
和其他一些元素xs
组成的列表,子集集是xs
的所有子集,再加上x
的子集。在相关问题 更多 >
编程相关推荐