leetcode1011
class Solution:
def shipWithinDays(self, weights: 'List[int]', D: int) -> int:
left = max(weights)#不能小于最重的单个货物
right = sum(weights)#不用大于全部货物的总重量
while left < right:#以此为左和右边界,向中间查询
cur = 0 #当前批次装载重量
need = 1 #所需时间
mid = (left + right) // 2
for w in weights:
if cur + w > mid:#超过中间位置的重量
need += 1#所需天数+1
cur = 0#当前批次结束
cur += w
if need > D:#按当前mid位置作为运载量,时间超过预期要求D,则需要提高运载量,left增大
left = mid + 1
else: #当前mid位置作为运载量,可以在规定时间D内完成全部货物的运输,则尝试减小运载量,right减小
right = mid
#循环退出时left==right,是最佳运载量
return left
leetcode1011的更多相关文章
- [Swift]LeetCode1011. 在 D 天内送达包裹的能力 | Capacity To Ship Packages Within D Days
A conveyor belt has packages that must be shipped from one port to another within D days. The i-th p ...
随机推荐
- java中遍历实体类,获取属性名和属性值
方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for ...
- [转]一图读懂JVM架构解析
每个Java开发人员都知道字节码经由JRE(Java运行时环境)执行.但他们或许不知道JRE其实是由Java虚拟机(JVM)实现,JVM分析字节码,解释并执行它.作为开发人员,了解JVM的架构是非常重 ...
- OpenStack 创建虚机过程简要汇总
1. 总体流程 翻译自原文(英文):https://ilearnstack.com/2013/04/26/request-flow-for-provisioning-instance-in-opens ...
- [转][html]设置IIS 默认页
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.we ...
- [UE4]给Widget增加参数,Pre Construct和Construct的区别
使用Pre Construct事件可以在编辑器中实时显示出选择的背景图片. 如果使用的是“Construct”事件则只能在游戏运行时把图片显示出来.
- JVM内存调优
JVM性能调优有很多设置,这个参考JVM参数即可. 主要调优的目的: 控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为 控制JVM堆栈大 ...
- Frobenius 范数
- SAS DATA ENCODING 解决odbc乱码问题
首先获取编码格式: %PUT %SYSFUNC(getOption(ENCODING)); libname findoout ODBC datasrc=SurveyReport user=shendu ...
- Vue百度搜索
<!DOCTYPE html><html lang="en"><head> <meta charset="GBK"&g ...
- sql server 日志传送问题整理
1.数据库备用/只读状态恢复为联机 SELECT DATABASEPROPERTYEX('ty_szum_oa_v2_bak','IsInStandBy') restore database ty_s ...