回溯(python)

模板:

def dfs(参数):

if(停止条件):

收集答案

退出

for(集合):

处理节点

递归函数

回溯

复制代码
#从1-n里面,找出长度为k=2的所有组合
#  1 2 3 4    长度为2
#  [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
def combine(n,k):
    res=[]
    path=[]
    def dfs(start):
        #递归出口,达到长度k就收集答案
        if len(path)==k:
            res.append(path[:])
            return
        
        #单层递归逻辑
        for i in range(start,n-(k-len(path))+1):  #用start控制数的选取,只能往前选
            path.append(i+1)  #选择该数
            dfs(i+1)  #进入下一层
            path.pop()   #回溯,回到上一层

    dfs(0)
    print(res)
def main():
    n=int(input())
    k=int(input())
    combine(n,k)
if __name__=="__main__":
    main()
相关推荐
天月风沙2 分钟前
基于机器视觉的实验室器件仓储系统设计——内蒙古自治区国家级大创工程存档
开发语言·python
weixin_4684668537 分钟前
机器学习之决策树新手实战指南
人工智能·python·算法·决策树·机器学习·ai
Hesionberger1 小时前
巧用异或找出唯一数字(多解)
java·数据结构·python·算法·leetcode
hef2881 小时前
Python内置函数从入门到实战:list、open等核心用法全解析
python
七老板的blog1 小时前
【Agent智能体】 任务规划工作流
python·学习·ai·开源
weixin199701080161 小时前
[特殊字符] 【性能提升300%】仿1688首页的Webpack优化全记录(附构建分析Python脚本)
前端·python·webpack
代码小书生1 小时前
getpass,一个安全输入的 Python 库!
开发语言·python·安全
其实防守也摸鱼1 小时前
告别单个变量,用列表和字典批量管理你的 Python 数据
开发语言·网络·软件测试·python·web安全·数据结构,编程教程
海鸥-w1 小时前
前端学习python第二天手敲笔记整理
前端·python·学习
MageGojo1 小时前
10 种主题随机诗词:一个 API 解决小程序的诗词内容源
python·小程序·古诗词·api 接入