一共两道题
第一题:
给一个1D array of integers, 找里面1和2(或者2和1)之间的最短距离。
[ 1 5 9 7 3 2 4 1 ]
|---|
2
我的解法就是TWO POINTERS,比较简单
第二题是个扩展,变成2维矩阵。距离的定义是MAHANTTAN DISTANCE(就是X OFFSET +YOFFSET)。如果是对角线的话,距离算2。
比如这个
[
9 1 8 1
2 5 6 3
5 0 4 6
]
最短的就是(0,1)和(1,0)之间的距离2。
我的解法就是BFS。从1或者2开始都可以,存最小值就行。。。
INPUT:
1)给了N个雷达的坐标和探测距离,比如这样的(xi, yi), ri。xi yi是第i个雷达的位置,ri是它的探测距离。
2)给了一个RECTANGLE ALLOWABLE AREA,比如(a0, b0), (a0, b1), (a1, b1), (a1, b0)。
allowable area:
(a0, b0) --------------- (a0, b1)
| |
| |
(a1, b0) --------------- (a1, b1)
问题:一辆在那个ALLOAWABLE AREA的LEFT BOUNDARY (按上图,就是在(a0,b0)和(a1,b0)那条线上)的车能不能走到RIGHT BOUNDARY但不被任何一个雷达发现。
注意汽车最开始的位置没有固定,任何在LEFT BOUNDARY上面的点都可以当作起始位置
我的办法就是UNION FIND。