小编use*_*193的帖子

查找数组/序列中等于sum的最短组合

我完全陷入困境,不知道如何解决这个问题.假设我有一个阵列

arr = [1, 4, 5, 10]
Run Code Online (Sandbox Code Playgroud)

和一个数字

n = 8
Run Code Online (Sandbox Code Playgroud)

我需要从arr内等于n的最短序列.所以例如在arr等于n之后的序列

c1 = 5,1,1,1
c2 = 4,4
c3= 1,1,1,1,1,1,1,1
Run Code Online (Sandbox Code Playgroud)

所以在上面的例子中,我们的答案是c2,因为它是arr中等于sum的最短序列.

我不确定找到上述解决方案的最简单方法是什么?任何想法或帮助将非常感激.

谢谢!

编辑:

  • 修复了数组
  • 数组可能只有正值.
  • 我不确定子集问题如何解决这个问题,可能是由于我自己的无知.子集算法总是给出等于和的最短序列吗?例如,子集问题会将c2识别为上述场景中的答案吗?

python algorithm dynamic-programming coin-change

6
推荐指数
1
解决办法
2291
查看次数