以下是采访中提出的问题:
你被安置在一条很长的街道上。这是你停车的街道。你必须在这条街上找到你的车。
找到你的汽车的算法是什么,复杂性是多少。他们正在寻找的答案是O(nlogn)......但你必须证明为什么它是o(nlogn)...... 提示:很多数学都涉及到这个答案。
答案 0 :(得分:5)
我想n
这里是到车的距离。问题是你处于无限的街道/线路中间,你不知道要走哪条路。
对此的解决方案是在一个方向上移动x个单位,然后向另一个方向移动2x,然后向前移动4x,向后移动4x等等......并且所需的步行是 O(n * logn)< / strike> O(n)。
答案 1 :(得分:0)
这是在线cow path problem的一个特例。通常的衡量标准是最差的旅行距离,如果您知道汽车的位置(competitive ratio),则与您旅行的距离相比。这是9n,实际上是O(n),而不是O(n log n)。但是,你可以改变方向的O(log n)。