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

Leetcode 3387. Maximize Amount After Two Days of Conversions

  • Leetcode 3387. Maximize Amount After Two Days of Conversions
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3387. Maximize Amount After Two Days of Conversions

1. 解题思路

这一题思路上其实就是要分别求出day 1以及day 2中原始货币与其他各个货币之间的成交价,然后考察一次来回交易所能带来的最大值。

而对于任意一天,要求指定货币与其他所有货币的交易价,事实上就是先构建一棵树,然后遍历一下树的全部节点即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maxAmount(self, initialCurrency: str, pairs1: List[List[str]], rates1: List[float], pairs2: List[List[str]], rates2: List[float]) -> float:def get_rate(pairs, rates, currency):graph = defaultdict(list)for (u, v), r in zip(pairs, rates):graph[u].append((v, r))graph[v].append((u, 1/r))ans = {}q = [(currency, 1.0)]while q:u, r = q.pop(0)ans[u] = rfor v, r in graph[u]:if v in ans:continueq.append((v, ans[u] * r))return ansday1_rate = get_rate(pairs1, rates1, initialCurrency)day2_rate = get_rate(pairs2, rates2, initialCurrency)ans = 1for currency in day2_rate:ans = max(ans, day1_rate.get(currency, 0.0) / day2_rate.get(currency, 0.0))return ans

提交代码评测得到:耗时7ms,占用内存17.4MB。

http://www.lryc.cn/news/504644.html

相关文章:

  • 机器视觉与OpenCV--01篇
  • 简单的Java小项目
  • 使用layui的table提示Could not parse as expression(踩坑记录)
  • 区块链共识机制详解
  • 【Excel】单元格分列
  • 【含开题报告+文档+PPT+源码】基于微信小程序的旅游论坛系统的设计与实现
  • 微软 Phi-4:小型模型的推理能力大突破
  • 操作系统课后习题2.2节
  • [小白系列]安装sentence-transformers
  • Python字符串format方法全面解析
  • 【Reading Notes】Favorite Articles from 2024
  • Python爬虫之Scrapy框架基础入门
  • spring cloud contract mq测试
  • Axure原型设计技巧与经验分享
  • 计算机网络之王道考研读书笔记-1
  • 服务器限制某个端口只允许特定IP访问(处理第三方依赖漏洞)
  • JavaScript--原型与原型链
  • hive—常用的日期函数
  • HTML零基础入门教学
  • vue3 父组件调用子组件 el-drawer 抽屉
  • Java中常用算法之选择排序算法
  • UNIX简史
  • React和Vue中暴露子组件的属性和方法给父组件用,并且控制子组件暴露的颗粒度的做法
  • uniapp 常用的指令语句
  • python学opencv|读取图像(十四)BGR图像和HSV图像通道拆分
  • C# 结构体和类
  • D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。
  • 题目 1738: 排序
  • 爬虫逆向学习(十四):分享一下某数通用破解服务开发经验
  • 《Vue进阶教程》第十一课:响应式系统介绍