Hot10039. 组合总和

Posted 爱写Bug的王六六

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hot10039. 组合总和相关的知识,希望对你有一定的参考价值。

39. 组合总和

编码通过 深度优先遍历 实现,使用一个列表,在 深度优先遍历 变化的过程中,遍历所有可能的列表并判断当前列表是否符合题目的要求,成为「回溯算法」。
(dfs,递归)

递归枚举,枚举每个数字可以选多少次。

递归过程如下:

1、遍历数组中的每一个数字。
2、递归枚举每一个数字可以选多少次,递归过程中维护一个target变量。如果当前数字小于等于target,我们就将其加入我们的路径数组path中,相应的target减去当前数字的值。也就是说,每选一个分支,就减去所选分支的值。
3、当target == 0时,表示该选择方案是合法的,记录该方案,将其加入res数组中。

思路:

  • 候选数组里有 2,如果找到了组合总和为 7 - 2 = 5 的所有组合,再在之前加上 2 ,就是 7 的所有组合;
  • 同理考虑 3,如果找到了组合总和为 7 - 3 = 4 的所有组合,再在之前加上 3 ,就是 7 的所有组合,依次这样找下去。

基于以上的想法,可

以上是关于Hot10039. 组合总和的主要内容,如果未能解决你的问题,请参考以下文章

按类型重新组合的条件行总和

查找 1 和 2 的可能组合,总和为常数

216. 组合总和 III

计算组合的有效算法,数组的重复加起来等于给定的总和

Leetcode刷题Python216. 组合总和 III

组合总和-Leetcode