File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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/
You can’t perform that action at this time.
0 commit comments