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的更多相关文章

  1. [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 ...

随机推荐

  1. DS二叉树--二叉树之父子结点

    题目描述 给定一颗二叉树的逻辑结构如下图,(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构. 编写程序输出该树的所有叶子结点和它们的父亲结点 输入 第一 ...

  2. 【springBoot】之配置文件application

    springboot使用一个全局的配置文件application.properties或者是application.yml,放在在src/main/recesources下或者在类路径下的/confi ...

  3. 使用jquery.mCustomScrollbar自定义滚动条(3)callback onCreate

    碰到了一个问题,想简洁,所以在页面上使用 <div class="div_box mCustomScrollbar" data-mcs-theme="dark-3& ...

  4. Java学习---流与文件

    实验10  流与文件操作 一.实验目的 理解和掌握JAVA程序中实现输入/输出的技术和有关的类与方法. 二.实验要求 掌握File类常用的方法 掌握标准数据流及Scanner类的应用. 掌握文件输入输 ...

  5. jquery中each()的三种遍历用法

    1.选择器+遍历 $('div').each(function (i){ i就是索引值 this 表示获取遍历每一个dom对象 }); 2.选择器+遍历 $('div').each(function  ...

  6. JVM -verbose参数详解(转)

    原文 http://www.javaranger.com/archives/367 java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息. java -verbos ...

  7. [UE4]更新Flag坐标

    UserWidget中也是有Event Tick事件,游戏运行每一帧都会调用这个事件 一.在MiniMapFlagData结构体中,添加Slot和ImageWidget变量 二.在StaticMini ...

  8. [UE4]图片按钮设置技巧

  9. 基于JMX动态配置Log4J日志级别

    先来看比较low的修改日志级别的方式,在写程序里面. http://blog.gssxgss.me/java%E8%BF%90%E8%A1%8C%E6%97%B6%E5%8A%A8%E6%80%81% ...

  10. 多款Android播放器源码集锦

    原帖地址:http://blog.csdn.net/jingwen3699/article/details/7765804/