所有子集的和
来源:互联网 发布:arcgis转移矩阵 编辑:程序博客网 时间:2024/04/28 06:33
Lintcode 730
已知:
给一整数 n, 我们需要求前n个自然数形成的集合的所有可能子集中所有元素的和。
示例:
给出 n = 2, 返回 6可能的子集为 {{1}, {2}, {1, 2}}. 子集的元素和为 1 + 2 + 1 + 2 = 6给出 n = 3, 返回 24可能的子集为 {{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}子集的和为:1 + 2 + 3 + (1 + 2) + (1 + 3) + (2 + 3) + (1 + 2 + 3) = 24
思路:
其实这更像是一个数学问题,而不是代码问题。以4为例子,取一个数,则取1的可能性为1种,取两个数字,则取1的可能性为3种,取三个数字,则取1的可能性为3种,取四个数字,可能性为1种,则1总共计算了 1+3+3+1 共8次, 其他三个数字也是8次。所以,结合上面两个示例,很容易可以推的:当已知n的值时,我们会取里面的数字2^(n-1)次每一次的值为1+2+3+...+n
代码:
因为代码本身只有一句,这里就不贴了,不过提醒读者注意,当值的计算过程中有可能超过Integer.MAX_VALUE时,比如说X * Y / 2这样的计算式,必须把乘放最后计算,否则超过界限就会变成负数,从而造成结果的出错
结语:
谢谢您的观看,希望对您有所帮助❥(ゝω・✿ฺ)
阅读全文
0 0
- 所有子集的和
- 所有子集的和-LintCode
- HDU5656 所有子集GCD和
- 递归算法-求所有和为10的子集
- 一个集合所有子集和为sum的组合打印
- 算法题:求所有和为N的子集
- 打印集合所有的子集
- 穷举所有子集的算法
- 求集合的所有子集
- 打印集合的所有子集
- 一个集合的所有子集
- 求集合的所有子集
- 打印字符串所有的子集
- 求解数组的所有子集
- 数字n的所有子集
- 输出集合的所有子集
- Subsets 数组的所有子集
- 求集合的所有子集
- 数据结构实验之查找五:平方之哈希表
- D3D11和D3D12多线程渲染框架的比较(二)
- spring boot实现上传图片并在页面上显示
- Google Guava学习计划第一章Guava Utilities—Function_Predicate_Maps_Sets
- 单例模式(第21章)
- 所有子集的和
- Kotlin 中的相等比较
- 关于拖延症
- 机器学习笔记(VIII)线性模型(IV)线性判别分析(LDA)
- Luogu P1629 邮递员送信
- ShaderWeaver使用教程-使用模糊
- 04_c++重载_指针_引用
- oracle Listener TNSNAME
- 基本概念