1、考虑问题不够全面(注意在没有评测系统的时候,会出问题)
在考虑的时候被测试用例带偏了,没有考虑会出现不是正好的情况。1,2,3,1,1 4
在最终没有达到天数要求的情况下也可以进行,即最后分多次运输即可
所以将最后改为<=
代码:
package com.leetCode.code;
public class leet1011 {
public static void main(String[] args) {
int[] weights = {1,2,3,1,1};
int D = 4;
System.out.println(shipWithinDays(weights,D));
}
public static int shipWithinDays(int[] weights, int D) {
int sum =0;
for(int i:weights)
sum+=i;
int ans=0;
int day=0;
int i;
for(i=1;i<=sum;i++)
{
day=1;
int p=0;
int sy=i;
while(p<weights.length)
{
if(weights[p]>i) break;
if(sy<weights[p])
{
day++;
sy=i;
}else {
sy-=weights[p];
p++;
}
}
if(day<=D&&p==weights.length) break;
day=0;
}
return i;
}
}