[LeetCode]2141. Maximum Running Time of N Computers (Hard) Python-2023.07.27
Posted on 2023-07-27 18:34 Uriel 閱讀(39) 評(píng)論(0) 編輯 收藏 引用 所屬分類: 閑來(lái)無(wú)事重切Leet Code 、二分.三分有一些電池,每個(gè)電池可以使用batteries[i]時(shí)間,問(wèn)要同時(shí)運(yùn)行n臺(tái)機(jī)器,每臺(tái)機(jī)器需要一個(gè)電池,最多可以運(yùn)行多久,二分
一開(kāi)始r取小了點(diǎn),WA*1
1 #2141
2 #Runtime: 2010 ms (Beats 33.33%)
3 #Memory: 25.1 MB (Beats 100%)
4
5 class Solution(object):
6 def maxRunTime(self, n, batteries):
7 """
8 :type n: int
9 :type batteries: List[int]
10 :rtype: int
11 """
12 l, r = 0, sum(batteries) // n + 1
13 while l <= r:
14 mid = (l + r) // 2
15 if sum(min(mid, b) for b in batteries) >= n * mid:
16 l = mid + 1
17 else:
18 r = mid - 1
19 return r
2 #Runtime: 2010 ms (Beats 33.33%)
3 #Memory: 25.1 MB (Beats 100%)
4
5 class Solution(object):
6 def maxRunTime(self, n, batteries):
7 """
8 :type n: int
9 :type batteries: List[int]
10 :rtype: int
11 """
12 l, r = 0, sum(batteries) // n + 1
13 while l <= r:
14 mid = (l + r) // 2
15 if sum(min(mid, b) for b in batteries) >= n * mid:
16 l = mid + 1
17 else:
18 r = mid - 1
19 return r