leetcode1011
生活随笔
收集整理的這篇文章主要介紹了
leetcode1011
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 class Solution:
2 def shipWithinDays(self, weights: 'List[int]', D: int) -> int:
3 left = max(weights)#不能小于最重的單個(gè)貨物
4 right = sum(weights)#不用大于全部貨物的總重量
5 while left < right:#以此為左和右邊界,向中間查詢
6 cur = 0 #當(dāng)前批次裝載重量
7 need = 1 #所需時(shí)間
8 mid = (left + right) // 2
9 for w in weights:
10 if cur + w > mid:#超過中間位置的重量
11 need += 1#所需天數(shù)+1
12 cur = 0#當(dāng)前批次結(jié)束
13 cur += w
14 if need > D:#按當(dāng)前mid位置作為運(yùn)載量,時(shí)間超過預(yù)期要求D,則需要提高運(yùn)載量,left增大
15 left = mid + 1
16 else: #當(dāng)前mid位置作為運(yùn)載量,可以在規(guī)定時(shí)間D內(nèi)完成全部貨物的運(yùn)輸,則嘗試減小運(yùn)載量,right減小
17 right = mid
18 #循環(huán)退出時(shí)left==right,是最佳運(yùn)載量
19 return left
?
轉(zhuǎn)載于:https://www.cnblogs.com/asenyang/p/10547056.html
總結(jié)
以上是生活随笔為你收集整理的leetcode1011的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx配置服务器静态文件支持跨域访问
- 下一篇: Android Jetpack Navi