当前位置: 首页 > 网络应用技术

Leetcode 216.组合总和III(Python)(Python)

时间:2023-03-06 14:03:23 网络应用技术

  查找k数的allid组合,总计n,以使之后的条件为真:

  

  示例1:

  示例2:

  示例3:

  笔记:

  根据目的,所有符合以下条件的K数的有效组合:

  返回所有可能的有效组合。此列表不能包含两个相同的组合,并且可以按任何顺序返回组合。

  这个问题显然是DFS。当我们寻找一个数字组合时,我们必须首先排除某些不可能的情况,也就是说,当最小的k数大于n时,这意味着完全不可能的组合直接直接返回到空列表。当最小k数等于n时,这意味着只能直接返回一组数字和要求。执行这些操作是实用的,但是直接提前编写会提高AC的工作速度,减少运行速度时间,并通过使用DFS缩短20毫秒来缩短时间。

  其余的情况移交给了DFS进行解决。k等同于树的深度,n等同于树的宽度。我们定义递归函数dfs(i,k,n,l):

  时间复杂性是数字O(C(9,K)),总共可能有9个递归堆栈。每个列表所需的空间l每次是K,因此空间复杂性为O(9 + K)。

  https://leetcode.com/prblems/combination-sum-iii/

  您的支持是我最大的动力

  原始:https://juejin.cn/post/709627964735196430