我遇到了这个问题,并不太确定如何处理它。
我想也许最好的方法是向东行驶1公里,然后向西行驶2公里,然后行驶3公里......依此类推,直到我们到达出口。
我们站在一条左右隧道的中间。离我们不到数K公里的地方就是出口。我们不知道出口是位于东部还是西部。也不知道距离出口的距离K.
我们想尽可能少地走进去。假设我们每天可以步行50公里。提供一种算法,确保我们在<input type="file" name="fileToUpload" id="fileToUpload">
天内到达退出。认为你的算法是正确的。在一个例子中解释你的算法。
答案 0 :(得分:3)
你走在正确的轨道上。你需要在向东和向西之间振荡,而不是将振幅增加1,每次加倍。
这将确保您在O(K)天内到达出口。这是因为,如果K是2 ^ p,那么在到达出口之前,你将会行进最多的O(2 ^ p)km。
例如:如果K = 2 ^ n + 1,最坏的情况可能是:
1
1 + 2
2 + 4
4 + 8
8 + 16
...
2 ^(n)+ 2 ^(n + 1)
2 ^(n + 1)+ 2 ^ n + 1
(O(9K))。