package com.springboot.demo.leetcode;
/**
*
显示英文描述
用户通过次数 197
用户尝试次数 272
通过次数 203
提交次数 538
题目难度 Medium
传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。
传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。
返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。
*/
public class CapacityToShipPackagesWithinDDays {
//求出平均数,遍历数据是否能满足D天
public int shipWithinDays(int[] weights, int D) {
int min = 0;
int max = 0;
for (int i = 0; i < weights.length; i++) {
min = Math.min(min,weights[i]);
max = Math.max(max,weights[i]);
}
while(true){
int temp = 1 ;//记录消费多少天;
int wt = 0;
for (int i = 0; i < weights.length; i++) {
wt += weights[i];
if(wt>min){
wt = weights[i];
temp++;
}
}
if(temp<=D){
max = Math.max(max,Math.max(min,wt));
break;
}
min ++;
}
return max;
}
}