思路1:深搜求排列、组合,每次递归选取一个没有使用的元素加入。排列:顺序不同为不同排列,因此每次从第一个元素开始判断选取。组合:顺序无关,为规避重复方案,每次从上一次选取元素的后一个元素开始选取。
思路2:组合,观察可知,原数组中的所有元素,在所有子集中出现的总次数是相同的,因此如果可以求出这个次数,则次数乘以所有元素的和,即为所有子集元素之和。
子集:包含 1个元素、2个元素、...、n个元素
某个元素出现的次数即包含某个元素的子集个数。
包含某个元素的子集:即除这个元素外,另外选部分元素组成子集。C(n-1, 0)+C(n-1, 1)+C(n-1, 2)+...+C(n-1, n-1)