当前位置: 首页 > article >正文

python-leetcode-除法求值

399. 除法求值 - 力扣(LeetCode)

from collections import defaultdict
from typing import List

class Solution:
    def calcEquation(self, equations: List[List[str]], values: List[float], queries: List[List[str]]) -> List[float]:
        # 构建加权图
        graph = defaultdict(dict)
        
        for (A, B), value in zip(equations, values):
            graph[A][B] = value
            graph[B][A] = 1 / value  # 反向边

        # DFS 计算路径上的乘积
        def dfs(x, y, visited):
            if x not in graph or y not in graph:
                return -1.0
            if x == y:
                return 1.0
            
            visited.add(x)
            for neighbor in graph[x]:
                if neighbor in visited:
                    continue
                weight = graph[x][neighbor]
                res = dfs(neighbor, y, visited)
                if res != -1.0:  # 找到有效路径
                    return weight * res
            return -1.0

        # 处理查询
        results = []
        for C, D in queries:
            results.append(dfs(C, D, set()))
        
        return results


http://www.kler.cn/a/536857.html

相关文章:

  • 【Android开发AI实战】基于CNN混合YOLOV实现多车牌颜色区分且针对车牌进行矫正识别(含源码)
  • leetcode刷题日记 1
  • 深入了解 MySQL:从基础到高级特性
  • 优惠券平台(十一):布隆过滤器、缓存空值、分布式组合的双重判定锁解决缓存穿透问题
  • mac 安装 dotnet 环境
  • js-对象-JSON
  • UML学习
  • 【dotnet】安全编码规范
  • 【清晰教程】通过Docker为本地DeepSeek-r1部署WebUI界面
  • 2025年2月2日(多任务 线程)
  • vue3 的 onScopeDispose 是什么作用
  • 【数据结构-C语言】绪论
  • 0207算法:寻找目标值、库存管理
  • 101.对称二叉树 python
  • 【现代深度学习技术】深度学习计算 | 读写文件
  • UdpServer
  • springboot基于微信小程序的仓储管理系统
  • Python——Unicode 编码 或 解码 工具(通用版)
  • PHP:动态网站开发的灵活之选
  • .net的一些知识点
  • 无法使用ip连接服务器的mysql
  • Verilog代码实例
  • 摄像头模块烟火检测
  • 【提示工程】:如何有效与大语言模型互动
  • 蓝桥杯 Java 之输入输出
  • matlab simulink 汽车四分之一模型主动被动悬架-LQR