hackerrank fill orders 完成尽可能多的订单
小部件制造商面临对其新产品的意外高需求。他们想满足尽可能多的客户。给定可用的小部件数量和客户订单列表,制造商最多可以完全满足的订单数量是多少?
功能说明
在下面的编辑器中完成功能fillOrders。该函数必须返回一个整数,该整数表示已完成订单的最大数量。
fillOrders具有以下参数:
order:列出订单的整数数组
k:表示可装运的小部件的整数
约束条件
1≤n≤2 x 105
1≤阶[i]≤109
1≤k≤109
用于自定义测试的样本输入
2
10
30
40
样本输出
2(40 = 10 + 30)
想到排序了,但是没想到目标K每次还能这样减少,这样写更方便:
int count = 0;
Collections.sort(order);
for(int i=0; i<order.size(); i++) {
if(order.get(i)<=k) {
count++;
k = k - order.get(i);
}
}
return count;