day22| 回溯算法

三道题目 组合 组合之和 和电话号码

组合之和和组合异曲同工。大概逻辑就是

  • 首先明确组合和排序的区别。 在组合里面我们要确保不能有重复的序列
  • 我们保持整体序列是有序的,这样就避免了在遍历的过程中出现重复的状况
  • 假设我们输入一个 cur 那么我们就遍历所有比 cur 大的数
  • 在代码中就相当于while last<=n:这里的遍历
def dfs(path):
    if len(path)==k:
        res.append(path[:])
        return
    last = path[-1] if path else 0
    # 剪枝
    if len(path)+n-last<k:
        return
    last+=1
    while last<=n:
        dfs(path+[last])
        last+=1

全部评论

相关推荐

Dream_coding:你是不是只投大厂了
点赞 评论 收藏
分享
黑皮白袜臭脚体育生:春节刚过就开卷吗?哈基馆,你这家伙......
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务