回溯(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()
相关推荐
Dxy123931021621 分钟前
Python Pillow库:`img.format`与`img.mode`的区别详解
开发语言·python·pillow
༒࿈南林࿈༒1 小时前
刺猬猫小说下载
python·js逆向
.柒宇.1 小时前
AI-Agent入门实战-AI私厨
人工智能·python·langchain·agent·fastapi
默子昂1 小时前
langchain 基本使用
开发语言·python·langchain
SilentSamsara1 小时前
生成器实战:处理大文件、流水线模式与无限序列
vscode·python·青少年编程·pycharm
yaoxin5211231 小时前
402. Java 文件操作基础 - 读取二进制文件
java·开发语言·python
Chase_______2 小时前
计算机数据存储全解:从底层进制转换到存储介质演进
java·开发语言·python
构建的乐趣3 小时前
测度(Measure)和概率测度(Probability Measure) 测度和度量的区别
python
清水白石0083 小时前
把事故变成护城河:如何设计回归测试,防止“订单重复创建”这类历史 Bug 卷土重来?
python·bug
狐狐生风3 小时前
LangGraph 工具调用集成
python·langchain·prompt·agent·langgraph