繁体   English   中英

给定整数集的子集,其和为常数 N:Java

[英]Subsets of a given Set of Integers whose sum is a Constant N : Java

给定一组整数,如何找到总和为给定值的子集......子集问题?

示例: S = {1,2,4,3,2,5} 和 n= 7 查找总和为 n 的可能子集。 我试图用谷歌搜索发现很多链接,但不清楚。 我们如何在 java 中解决这个问题,要使用的数据结构及其复杂性是什么?

分三步:

  1. 求 S 的幂集(S 的所有子集的集合)

  2. 计算每个子集的总和

  3. 过滤掉总和不等于 7 的子集。

我不会给你任何代码,但会解释它是如何工作的。

  1. 运行从0 to (2^k-1)的循环
  2. 对于 1 中的每个值,其二进制表示中的 1 表示选择该值,否则为 0。
  3. 测试以查看所选数字的总和是否等于n

上述方法将评估给定集合的每个可能子集。

如果值的上限很小,则可以使用动态规划方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM