回溯(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()
相关推荐
默_笙1 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003961 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技1 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时1 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊1 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1231 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero071 天前
Jev 与 Laya
python·语言模型