python算法模板大全

BFS模板

from collections import deque
graph = graph
start = start
visited = set()  # 储存已经访问过的节点
queue = deque([start])  # 创建一个队列并将起点加入其中
visited.add(start)  # 将起点标记为已访问
 
while queue:  # 当队列不为空时执行循环
    cur = queue.popleft()  # 取出队首元素
    print(cur)  # 访问当前节点
    if cur in graph:
        for neighbor in graph[cur]:  # 遍历当前节点的所有相邻节点
            if neighbor not in visited:  # 如果相邻节点未被访问过
                queue.append(neighbor)  # 将其加入队列尾部
                visited.add(neighbor)  # 并将其标记为已访问过

DFS模板

visited = []
def dfs(node):
    """深度优先搜索遍历树/图的函数"""
    # 先将当前节点标记为已访问,并进行相关操作
    print(node)
    visited.append(node)
    # 针对当前节点的所有邻居/子节点进行递归
    if node not in graph:
        return
    else:
        for neighbor in graph[node]:
            # 判断该节点是否被访问过,如果没被访问过就递归访问它
            if neighbor not in visited:
                dfs(neighbor)
# 在主程序中调用dfs函数并传入起始节点
dfs(node)

DP模板

N = '列数'
M = '行数'
dp = [[0] * (N+1) for _ in range(M+1)]
for i in range(1, M+1):
    for j in range(1, N+1):
        if '判断条件':
            dp[i][j] = ma
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值