自然数的子集和方法

时间:2018-01-09 06:37:49

标签: python-3.x algorithm subset-sum

有一个n个元素的数组,其中任何元素都是自然数。在添加

时查找数组中存在的总和而不重复

方法

  1. 删除所有大于和的元素
  2. 按降序排列数组
  3. 将电流设置为0
  4. 循环i,其中i =通过最后一个
  5. 的数组的第一个元素
  6. 如果currentum + i <= sum,则currentum + = i
  7. 如果currentum == sum则打印为真
  8. 否则打印错误
  9. 此方法是否存在任何问题,或者是否存在可能给出错误答案的测试用例。

1 个答案:

答案 0 :(得分:1)

问题中提出的算法并不能产生正确的结果。考虑一个由值

组成的实例
7, 5, 3

已经以递减的方式排序。让

8

是总和的目标值。问题中的算法会选择7,因为它不大于8,但无法添加53,因为目标值8会超过。最后,算法将输出false。另一方面,选择53会产生8的和值,这意味着算法的输出是错误的。