A conveyor belt has packages that must be shipped from one port to another within D days.

The i-th package on the conveyor belt has a weight of weights[i].  Each day, we load the ship with packages on the conveyor belt (in the order given by weights). We may not load more weight than the maximum weight capacity of the ship.

Return the least weight capacity of the ship that will result in all the packages on the conveyor belt being shipped within D days.

Example 1:

Input: weights = [1,2,3,4,5,6,7,8,9,10], D = 5
Output: 15
Explanation:
A ship capacity of 15 is the minimum to ship all the packages in 5 days like this:
1st day: 1, 2, 3, 4, 5
2nd day: 6, 7
3rd day: 8
4th day: 9
5th day: 10 Note that the cargo must be shipped in the order given, so using a ship of capacity 14 and splitting the packages into parts like (2, 3, 4, 5), (1, 6, 7), (8), (9), (10) is not allowed.

Example 2:

Input: weights = [3,2,2,4,1,4], D = 3
Output: 6
Explanation:
A ship capacity of 6 is the minimum to ship all the packages in 3 days like this:
1st day: 3, 2
2nd day: 2, 4
3rd day: 1, 4

Example 3:

Input: weights = [1,2,3,1,1], D = 4
Output: 3
Explanation:
1st day: 1
2nd day: 2
3rd day: 3
4th day: 1, 1

Note:

  1. 1 <= D <= weights.length <= 50000
  2. 1 <= weights[i] <= 500

分析: binary search

 class Solution {
public int shipWithinDays(int[] weights, int D) {
int left = , right = ;
for (int w: weights) {
left = Math.max(left, w);
right += w;
}
while (left <= right) {
int mid = (left + right) / , need = , cur = ;
for (int w: weights) {
if (cur + w > mid) {
need += ;
cur = ;
}
cur += w;
}
if (need > D) left = mid + ;
else right = mid - ;
}
return left;
}
}

最新文章

  1. HDFS DataNode 设计实现解析
  2. MongoDB 安装,启动与基本使用
  3. CentOS下通过locale来设置字符集
  4. Java [leetcode 35]Search Insert Position
  5. Java ZIP File Example---refernce
  6. a标签的背景图在ie8下不显示的问题
  7. 如何关闭tomcat的localhost_access_log?
  8. js原生:封装document.getElementByClassName()函数
  9. dxxzc团队及队员学号后三位
  10. TCP连接建立系列 — 服务端发送SYNACK段
  11. str() vs repr() in Python
  12. requests库入门03-get请求
  13. Centos7离线安装redis
  14. 轻量应用服务器 访问jsp页面就直接下载的问题
  15. Nginx安装、配置虚拟主机、反向代理、负载均衡
  16. centos7 关闭防护墙
  17. 【第十二课】FTP服务
  18. Parquet 格式文件
  19. USB集线器基础知识
  20. hello world之Makefile

热门文章

  1. TTTTTTTTTTTTTTTTT Gym 100851J Jump 构造
  2. 洛谷P2789 直线交点数 [数论,递归]
  3. Django-缓存问题无法创建表
  4. Flask-websocket实现聊天功能
  5. flask 第十篇 after_request before_request
  6. RxJava(一):响应式编程与Rx
  7. PHP将多个文件中的内容合并为新的文件
  8. CentOS7设置开机启动方式(图形界面/命令行界面)
  9. C++ STL——常用算法
  10. 侧方、s弯道、坡起相关