- 主题:一道谷歌面试题
从0刻度往1方向开一枪,往-1方向再开一枪
【 在 stub (stub) 的大作中提到: 】
: 有一个无限长的整数刻度的坐标轴,有一只蚂蚁在某一个整数刻度上,但是具体位置未知,现在蚂蚁每秒钟都会向正方向前进一格。你有一把手枪,每秒钟你能向坐标轴的某个刻度开一枪,之后只能知道打中还是没打中,请你设计一种开枪的策略,保证最终一定能打中这只蚂蚁。
--
FROM 119.131.204.*
如果开始在-1呢
【 在 Richbunny (桃浦兔) 的大作中提到: 】
: 第一枪打0
: 第二枪打2
: 第三枪打0
: ...................
--
FROM 119.131.204.*
追上并不一定能踩中,踩不中就永远失去了
【 在 ycwu (虫子) 的大作中提到: 】
: 从坐标0开始交替按等比数列打枪(等待)和右移(追赶)
: 时刻 坐标 打枪 右移
: 0 0 1 2
: ...................
--
FROM 119.131.204.*
这个不是取n次next,不是null就行了?
【 在 smtm (smtm) 的大作中提到: 】
: 换一种问法:一个有n个节点的单向链表,如何确定它是否存在“环”?
: 是不是觉得似曾相识?
: 答案:用两个指针,一个每次+1,另一个每次+2。如果两个指针相遇,就是有“环”
: ...................
--
FROM 119.131.204.*
能追上,肯定扫过的地方有空隙,漏洞是怎么解决的?
【 在 chrstl (某个庸人) 的大作中提到: 】
: 可以的。翻下前面的答案,很多人都提到过了
: 不确定的是蚂蚁的初始位置,其速度和方向都是确定的。打枪的速度可以根据蚂蚁速度进行调整,不会出现追不上的情况。假设蚂蚁的速度是v,时间步数是t(从0开始),一个简单的搜索策略:
: v * t + floor((t+1)/2) * (t % 2 ? 1 : -1)
: ...................
--
FROM 119.131.204.*