{A}
AlgoViz
首页
路线图
题单
教程
题目
可视化
错题本
进度
登录
加载中…
组合求和 Combination Sum
回溯算法:可重复选数,找出和为目标的全部组合。
候选数:
目标:
速度:
0.5x
1x
2x
4x
2
3
6
7
当前组合:[],剩余 7
在 [2,3,6,7] 中找出和为 7 的全部组合(可重复选)
步骤 1 / 76
在 [2,3,6,7] 中找出和为 7 的全部组合(可重复选)
算法代码
复制代码
当前高亮行:
1
(在 [2,3,6,7] 中找出和为 7 的全部组合(可重复选))
1
function
combine(cands, remain, start) {
2
if
(remain ===
0
) { save([...cur]);
return
; }
3
if
(remain <
0
)
return
;
4
for
(i = start; i < cands.length; i++) {
5
cur.push(cands[i]);
6
combine(cands, remain - cands[i], i);
7
cur.pop();
// 回溯
8
}
9
}