Shortest Word Distance follow up

这是两年前的follow up了,深刻思考了一下,还是能做的。求的是3个word的Shortest Distance。

其实基本做法还是一样的。就是两个指针,但这次找的是3个位置里最小的那个往前移。

算最短距离的时候还涉及到一点点曼哈顿距离。 因为3个数字的最短距离等于他们的差,然后因为中间那个会被前后夹住,所以可以用曼哈顿距离来算。(Max-Min)X 2就是三个的差。具体来一个例子好理解一点。

word1 :1,8,9,10
word2 :5,6
word3 : 4, 7

p1, p2, p3 一开始都指着开头。所以distance = (5 - 1) × 2 = 8,也等于(5 - 1) + (4 - 1) + (5 - 4); min = 8
p1++
得到(8 - 4)× 2 = 8,min = 8
p3++
得到(8 - 5)x 2 = 6,min = 6
p2++
得到(8 - 6)× 2 = 4,min = 4

p2到end,退出循环,所以最后结果是4

Last updated