Skip to content

Commit 60a1e0c

Browse files
authored
Create fetch-supplies-ii.py
1 parent e857a4c commit 60a1e0c

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

fetch-supplies-ii.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import math
2+
import sys
3+
4+
class Solution:
5+
"""
6+
@param barracks: the position of barracks
7+
@return: the minimum of the maximum of the distance
8+
"""
9+
def fetchSuppliesII(self, barracks):
10+
# write your code here
11+
ret, mret = 0, 0
12+
l, r = sys.maxsize, -1
13+
for b in barracks:
14+
if b[0] > r:
15+
r = b[0]
16+
if b[0] < l:
17+
l = b[0]
18+
for i in range(100):
19+
mid = l + (r - l) / 2;
20+
mmid = mid + (r - mid) / 2;
21+
ret = self.maxDist(mid, barracks)
22+
mret = self.maxDist(mmid, barracks)
23+
if(ret > mret):
24+
l = mid;
25+
else:
26+
r = mmid;
27+
return math.sqrt(ret)
28+
29+
def maxDist(self, x, barracks):
30+
r = 0
31+
for b in barracks:
32+
d = (x - b[0]) * (x - b[0]) + b[1] * b[1]
33+
if d > r:
34+
r = d
35+
return r
36+
37+
# medium: https://www.lintcode.com/problem/1899/

0 commit comments

Comments
 (0)