Python | Leetcode Python题解之第399题除法求值

题目:

题解:

python 复制代码
class Solution:
    def calcEquation(self, equations: List[List[str]], values: List[float], queries: List[List[str]]) -> List[float]:
        # 构造图
        graph = defaultdict(list)
        for (u, v), value in zip(equations, values):
            graph[u].append((v, value))
            graph[v].append((u, 1 / value))

        def dfs(node, target, visited, acc_product):
            # 如果找到了目标节点,返回累积乘积
            if node == target:
                return acc_product
            # 标记当前节点为已访问
            visited.add(node)
            # 遍历当前节点的邻居
            for neighbor, value in graph[node]:
                if neighbor not in visited:
                    result = dfs(neighbor, target, visited, acc_product * value)
                    if result != -1:
                        return result
            return -1

        results = []
        for start, end in queries:
            if start in graph and end in graph:
                # 如果起点和终点都在图中,进行DFS
                results.append(dfs(start, end, set(), 1.0))
            else:
                # 否则,结果为-1
                results.append(-1.0)
        
        return results
相关推荐
幻云20105 分钟前
Python机器学习:筑基与实践
前端·人工智能·python
喵手5 分钟前
Python爬虫零基础入门【第二章:网页基础·第2节】你要抓的到底是什么:HTML、CSS 选择器、XPath 入门?
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·网页基础·网页结构解析
飞天小蜈蚣7 分钟前
python-django_ORM的十三个查询API接口
开发语言·python·django
人工智能AI技术14 分钟前
【Agent从入门到实践】18 脚本化编程:批量执行、自动化逻辑
人工智能·python
摘星编程16 分钟前
React Native + OpenHarmony:MapView自定义标注样式
python
向量引擎19 分钟前
[硬核架构] 2026 企业级 AI 网关落地指南:从“连接超时”到“秒级响应”的架构演进(附 Python/Java 源码)
人工智能·python·gpt·ai作画·架构·aigc·api调用
0思必得021 分钟前
[Web自动化] Selenium模拟用户的常见操作
前端·python·selenium·自动化
Swift社区21 分钟前
LeetCode 380 O(1) 时间插入、删除和获取随机元素
算法·leetcode·职场和发展
凡客丶25 分钟前
Windows版Miniconda打包环境迁移到内网离线环境【详解】
windows·python
AI大佬的小弟29 分钟前
【详细步骤】大模型基础知识(4)---ollama模型调用-多轮对话体验
python·ollama·大模型基础·ai 聊天机器人·简单的大模型部署·实现ollama模型调用·零基础上手 ollama体验