回溯(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 分钟前
NumPy一小时速成
开发语言·python·numpy
IPdodo_5 分钟前
静态 IP 访问异常排查:403/429 归因与迁移验收
服务器·网络·数据库·python·网络协议·php·性能测试
Zengs15 分钟前
Python 脚本日志怎么分级落盘?排错时一次找准现场
python
baopixiaoz1 小时前
BeeQuant × BeeAgent:AI量化新范式
大数据·人工智能·python·区块链
IT毕设实战小研1 小时前
基于大数据的AI应用对就业与收入增长的区域差异分析及可视化
大数据·人工智能·python·随机森林·机器学习·课程设计
摆烂老大1 小时前
论文学习 | Expert Systems With Applications2026 | 可微分建模:S4D-HBV
python·学习·水文
程序员夏洛2 小时前
谈谈你了解的最常见的几种设计模式,说说他们的应用场景
开发语言·python·模板方法模式
橙露2 小时前
Cloudflare Pages 深度评测:免费静态托管的香与坑
python·部署
lk123062 小时前
【无标题】
pytorch·python
数据开发 Yang 同学2 小时前
【Python 并发编程】线程、进程、协程、同步/异步一次说清
python