- 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/
我有两个关于这段代码的问题。 double*** pdata 和 int*** pmask 是什么意思?指向指针的指针?为什么或何时需要这样做? int 和 double 是不同的类型,double*
谁能用英文解释一下这是怎么回事? std::vector cats; //I get that cats is a vector of Cat objects if (std::find(cats.b
在C中,下列声明有区别吗: float DoSomething( const float arr[] ); 对比 float DoSomething( const float* arr ); 一个比另
我到 question 36我认为这很简单。像往常一样,我显然错了。我正在尝试在 Python 中执行此操作(因为我不知道 Python)。我的代码如下。我得到 19 作为输出,这显然是不正确的。我不
我已经通读了 MSDN 上的 Winsock2 文档,但如果有人能提供帮助,我仍然需要澄清一些事情。 我计划做一些类似于您在使用 WSAAsyncSelect() 时获得的设置,但使用一个单独的线程。
#include int main () { int *p = (int *)malloc((100*sizeof(int))); p++; free(p); /* do some
我想提供未知的“对象”并返回其成员之一的值。在 C# 中需要响应。 一般来说,我想我正在寻找这个方法的代码公共(public)静态对象 GetObjectMemberValue (object myO
由异常准确的 AI 提供支持的 20 个问题的简单在线游戏。 他们怎么猜得这么好? 最佳答案 您可以将其视为二进制搜索算法。在每次迭代中,我们都会提出一个问题,该问题应该会消除大约一半的可能单词选择。
拜托,有人可以解释一下吗: 如果文档说 STL std::vector finding element speed performace = O(ln(n)),这是什么意思。 O(ln(n)) - 什
我正在尝试通过遵循 Microsoft 为 ADSI API 和 Windows-RS crate 发布的 c++ 示例来使用 Rust 的事件目录。我不太明白这里发生了什么: https://doc
这是处理具有重复元素的单个列表的 nieve 案例,我在处理一些嵌套列表时遇到了麻烦,所以我想先写简单的案例。 所以我有: (defn packDuplicatesIntoLists [lis
我是新来的。我正在尝试解决此练习 Problem 18只是为了加强我的解决能力。我已经编码了答案。该任务要求“在 1,000,000 以下的质数中,有多少个数位之和等于两周中的天数?” (两周是 14
我正在尝试对POCO类中的某些字段进行索引,并将某些属性装饰为“忽略= true”,并且这些字段不应被索引,而应该被存储。我希望这些字段出现在搜索结果中,但不应作为索引。 我正在尝试对应索引的几个字段
我是编码的新手,正在尝试通过完成 Project Euler 问题来学习 Swift。我似乎有导致大量错误的不同版本的 Swift 代码。如果您对我的问题的格式有任何建议以供将来引用,请告诉我,谢谢。
对于problem statement在 google codejam 2008:第 1A 轮问题 3 In this problem, you have to find the last three
我是一名优秀的程序员,十分优秀!