Hot10039. 组合总和
Posted 爱写Bug的王六六
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hot10039. 组合总和相关的知识,希望对你有一定的参考价值。
编码通过 深度优先遍历 实现,使用一个列表,在 深度优先遍历 变化的过程中,遍历所有可能的列表并判断当前列表是否符合题目的要求,成为「回溯算法」。
(dfs,递归)
递归枚举,枚举每个数字可以选多少次。
递归过程如下:
1、遍历数组中的每一个数字。
2、递归枚举每一个数字可以选多少次,递归过程中维护一个target变量。如果当前数字小于等于target,我们就将其加入我们的路径数组path中,相应的target减去当前数字的值。也就是说,每选一个分支,就减去所选分支的值。
3、当target == 0时,表示该选择方案是合法的,记录该方案,将其加入res数组中。
思路:
- 候选数组里有 2,如果找到了组合总和为 7 - 2 = 5 的所有组合,再在之前加上 2 ,就是 7 的所有组合;
- 同理考虑 3,如果找到了组合总和为 7 - 3 = 4 的所有组合,再在之前加上 3 ,就是 7 的所有组合,依次这样找下去。
基于以上的想法,可
以上是关于Hot10039. 组合总和的主要内容,如果未能解决你的问题,请参考以下文章