- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近去一家公司面试(M开头,A结尾)问了我这个问题。仍在练习我的算法,所以我希望有人能帮助我理解如何解决这个问题,以及这些类型的问题。
问题:
给你 2 个数组。例如:
D = [10,7,13,12,4]
R = [5,12,7,10,12]
D
表示从城市 A
到城市 B
的航类出发价格。 R 表示从城市 B
到城市 A
的航类的返程价格。找出城市 A
和城市 B
之间往返航类的最低费用。例如,示例中的最小值是 D[1] + R[2]
。
(只能乘坐与出发航类相同或更高指数的返程航类)
棘手的部分是,显然,您必须在返回之前离开。
朴素的方法只是结合了所有可能性的双重 for 循环。但是,我知道有更好的方法,但我无法理解它。我相信我们想要创建某种具有最小值的临时数组或类似的东西...
感谢阅读。
最佳答案
我对@user1984 的解决方案非常满意。但如果你真的想打动他们:
from itertools import accumulate
monoQ = list(accumulate(reversed(R), min))
monoQ.reverse()
best = min(d + r for d, r in zip(D, monoQ))
大多数人都熟悉 list(accumulate((1, 2, 3, 4 5), operator.add))
返回 (1, 3, 6, 10, 15 )
,但使用 min
可使结果成为迄今为止看到的最小元素。既然要从这里到最后的最小元素,就得把list倒过来,累加起来,然后再倒过来。
由于这是在讨论其他答案之一时出现的,因此可以将其重写为 O(1) 空间。
best = min(d + r for d, r in zip(reversed(D), accumulate(reversed(R), min)))
这有点 hacky,除非您特别要求 O(1) 空间解决方案,否则我不会推荐它。
不幸的是,你必须使用 reverse(D)
并从列表的末尾开始工作,而不是 reverse(accumulate(...))
因为你不能将 reverse
应用于累加。 zip
、reversed
和 accumulate
都返回迭代器而不是列表或元组。
关于python - 算法题: Finding the cheapest flight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69995292/
我感兴趣的是,在使用 JFR 程序进行分析时,是否可以为每个或大多数用户方法获取以纳秒为单位的开始和结束时间? 我知道可以使用代码检测,但我想利用采样分析器的优势来减少对实际程序执行的影响。 我觉得这
我正在开发 iOS 应用程序,需要识别应用程序运行的环境以对 API 端点进行分类。我想知道该应用程序是否在生产、模拟器和试飞下运行。我已经通过用户定义的设置对生产和模拟器进行了分类,但我仍然不确定如
Java Flight Recorder 现在是 OpenJDK 11 的一部分,并提供自定义事件的使用。 成功录制后,我想重用事件中的信息(尤其是我自己的自定义事件),但不知何故我无法读取事件的字段
我正在使用 jvm 的命令行参数列表 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=延迟=2m,
我才刚刚开始使用 Flight.js并意识到组件实例共享局部变量,但在文档中没有找到任何相关信息。 这就是我的意思: flight.component(function () { var sh
Java Mission Control jmc 的用户界面允许我生成Flight Recorder 记录。在 Start Flight Recording 对话框中,我可以输入要生成的记录文件的名称
将应用提交审核后,我无法向构建中添加新的测试人员或新的测试组。单击 App Store 连接中构建下的“测试飞行”选项卡中的添加按钮时,会显示一个弹出消息,其中包含消息 “您只能将 1.9.5 版的一
我试图破译 context 中“飞行中请求”的含义浏览器加载网页: Look for the first interactive window where there is a contiguous
最近去一家公司面试(M开头,A结尾)问了我这个问题。仍在练习我的算法,所以我希望有人能帮助我理解如何解决这个问题,以及这些类型的问题。 问题: 给你 2 个数组。例如: D = [10,7,13,12
假设我使用以下标志为我的 JVM 配置了连续飞行记录 java -XX:StartFlightRecording=disk=false,dumponexit=true -XX:FlightRecord
我正在开发一个打算使用an Amazon SQS Delay Queue的项目。 我在准确理解“飞行中”消息的含义方面有些麻烦。 文档中有一条注释,内容为: Note There is a 120,0
我们的 CI 中有一项工作,用于启动 Java 应用程序并运行一些测试(该测试充当应用程序的客户端)。该应用程序是使用我认为正确的 JVM 选项来启动连续飞行记录的: -XX:+UnlockComme
我正在尝试通过使用 osgGA::AnimationPathManipulator 将 osg::AnimationPath 应用于我的 osgViewer::Viewer 实例的相机。我的问题是 A
一直在寻找如何通过 Twitter Flight 附加到动态创建的元素。 具有以下 HTML Add element 以及下面的组件定义 var Article = flight.component(
我有一个 Java 进程,我使用以下选项启动它(如此处建议:parameters for FR): -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
我的应用程序需要一个从我们的服务器接收远程通知的功能。它在 expo 和模拟上工作正常,但在独立的 iOS 上,它向我显示这样的错误 我通过试飞安装此应用程序,其中“通知”权限返回状态为“未确定”,因
我的目标是建立一个解耦的 UI 架构。我希望轮播和分页组件彼此分开;但分页能够监听 uiCarouselMoved 事件的更改。 示例:http://jsbin.com/uQadehI/1/edit?
我在 TestFlight 服务器中有 v1.1.1 和 v1.1.3。是否可以完全删除 1.1.3 然后上传 v1.1.2? 最佳答案 您甚至不需要删除 1.1.3,您只需上传 1.1.2 的新版本
我正在使用 Java Mission Control + Flight Recorder 分析 java8 JVM 进程。 在 I/O 选项卡下检查记录时,它说: "Event types 'File
有个奇怪的问题... 在我的 AppDelegate.m 中,我有以下内容: -(BOOL)application:(UIApplication *)application didFinishLaun
我是一名优秀的程序员,十分优秀!