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;
 
原文地址:https://www.cnblogs.com/immiao0319/p/13895350.html