algorithm - 如何解决具有传递依赖关系/图的算法问题?
问题描述
当我在面试中被问到这些问题时,我有点挣扎。举例来说,我有一个问题,我需要找到从一种货币转换为另一种货币的货币金额,并且我得到了货币列表。如何构建邻接/关系映射,以便获得正确的数量。即使是解释逻辑的算法也足够了。感谢您对此的建议!
例如:
假设我得到了一个包含不同兑换率(USD->INR = 75,INR -> XXX = 100)的货币对象列表。我需要找到从 USD-> XXX = 7500 的转换。我还应该能够进行反向转换,比如 INR->USD。如何通过构建图表找到它?
public Currency{
String fromCurrency;
String toCurrency;
double rate;
}
public double currencyConverter(List<Currency> currencies, fromCurrency, toCurrency){
return convertedCurrency;
}
解决方案
在您提到的问题中,图是有向图。假设您使用邻接矩阵表示图。用所有货币的数据填充矩阵。例如,USD->INR 有R1
汇率,因此 INR->USD 将是 1/R1
汇率。填充邻接矩阵后,使用算法计算有向图的传递闭包,例如Floyd-Warshall 算法。
推荐阅读
- android - 如何在 recyclerView 项目中添加 yotubePlayerFragment
- mysql - 从表复制到另一个没有特定值的表
- html - 如何更改我的 css 以使超链接可见[使用最少的示例代码]?
- maven - Azure DevOps 中构建失败的 Maven 阶段。使用自托管代理构建示例 java 但得到“未处理:EPERM:不允许操作”
- java - 如何将变量值从一个 xhtml 传递到另一个 xhtml,然后传递到第二个 xhtml 的支持 ManagedBean
- php - 在 WordPress 主题中使用 php 类的问题
- python - 如何获取网站上的所有内容
- tableau-api - Tableau:如何从 Oracle 数据库外部连接两个表?
- docker - yaws 因 httpc 崩溃:请求 docker 容器提供的 URL
- android - 如何从firebase中对对象进行排序?