# 1011. Capacity To Ship Packages Within D Days
###### tags: `Leetcode` `Medium` `Binary Search`
Link: https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/
## 思路
binary search 找答案
最开始的范围中 最小值是weights里面最大的数字 最大值是weights sum
## Code
```java=
class Solution {
public int shipWithinDays(int[] weights, int days) {
int start = 0;
int end = 0;
for(int i = 0;i < weights.length;i++){
start = Math.max(start, weights[i]);
end += weights[i];
}
while(start<end){
int mid = (start+end)/2;
if(check(weights, mid) <= days){
end = mid;
}
else{
start = mid+1;
}
}
return start;
}
public int check(int[] weights, int capacity){
int day = 1;
int idx = 0;
int sum = 0;
while(idx < weights.length){
if(sum+weights[idx]<=capacity){
sum+=weights[idx];
idx++;
}
else{
day+=1;
sum=weights[idx];
idx++;
}
}
return day;
}
}
```