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;

 

 
posted @ 2020-10-29 10:30  苗妙苗  阅读(126)  评论(0编辑  收藏  举报