Subset sum problem

 给一个整数集合s和一个整数n,请问s中是否存在一个子集合,这个集合里的元素和 等于 n

 

采用动态规划进行求解:

1. 设集合x的最小和以及最大和分别是min,max,设一个二维数组 m[n][max-min]

m[i][s] = 1表示找到了x[1...i]的一个子集和等于s

 

因此初试条件:m[1][x1] = 1

递推关系:

          m[2][x] = 1 if m[1][x-x2] = 1, 否则 m[2][x] = m[1][x]

 

参考wiki 链接:http://en.wikipedia.org/wiki/Subset_sum

你可能感兴趣的:(Subset sum problem)