请问给出一个数组,返回使用该数组可能得到的所有的和(和这个数组本身),代码该怎么写?

2020-03-03 11:40:22 +08:00
 Newyorkcity
比如给出 new int[]{1,2,3}
那么返回
{1,2,3,1+2,1+3,2+3,1+2+3}
元素不能重复使用,但可能给出 new int[]{1,1,2,3} 这样 1+1 也对

谢谢告知
1226 次点击
所在节点    问与答
4 条回复
black
2020-03-03 12:10:04 +08:00
回溯算法
ASpiral
2020-03-03 12:13:57 +08:00
zjbztianya
2020-03-03 12:20:15 +08:00
for mask = 1, 2^n-1 ,把 mask 看成二进制,如果对应位是1,那么把对应的数组的数字取出来....不过用 dfs 也行,要么取,要么不取
rabbbit
2020-03-03 12:32:16 +08:00
function coll(list) {
const result = [];
list.forEach(num => {
for (let j = 0, len = result.length; j < len; j++) {
result.push(num + result[j]);
}
result.push(num);
});
return result;
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/649354

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX