恢复阵列

时间:2019-11-10 13:15:11

标签: algorithm math data-structures subset-sum

我最近在招聘方面遇到了这个问题:

给出数组S的2 ^ N个整数(1 <= N <= 20,0 <= Si <= 10 ^ 9),它们表示数组A的子集和,我们需要按排序的顺序恢复数组A。

例如S = {2,1,0,3} => A = {1,2},因为A的子集和为{0,1,2,1 + 2}

数组S中的数字顺序可能是随机的。

我该如何解决这个问题?预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以对包含子集和的数组进行排序 当您对子集和数组进行排序时 A i = S [2 ^ i ]-应该按排序顺序为您提供数组A的值。

您可以创建一个真值表以获取子集和并追溯 假设S是有效输入 例如:S = {0,5,3,8,1,6,4,9}

labelTimer