领扣LintCode算法问题答案-730. 所有子集的和

领扣LintCode算法问题答案-730. 所有子集的和

730. 所有子集的和

给一整数 n, 我们需要求前n个自然数形成的集合的所有可能子集中所有元素的和。

样例 1:

输入 : n = 2
输出 : 6
说明 :
可能的子集为 {{1}, {2}, {1, 2}}.
子集的元素和为 1 + 2 + 1 + 2 = 6

样例 2:

输入 : 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

题解

public class Solution {
    /**
     * @param n: the given number
     * @return: Sum of elements in subsets
     */
    public int subSum(int n) {
        // write your code here
        int times = (int) Math.pow(2, n - 1);
        int ret = 0;
        while (n > 0) {
            ret += n * times;
            n--;
        }
        return ret;
    }
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页