美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D127 455. Assign

Leetcode PHP题解--D127 455. Assign

作者: skys215 | 来源:发表于2020-10-14 10:28 被阅读0次

    D127 455. Assign Cookies

    题目链接

    455. Assign Cookies

    题目分析

    给定两个数组,第一个数组代表每个容器的容量,第二个数组代表每种物品的个数。需要把物品塞入容器里面,但是有两个条件。

    条件一:一个容器内只能塞一种物品;

    条件二:一种物品只能塞入一个容器,但可以不塞完。

    例如,容器大小为1,物品数量为3时,该物品可以塞入该容器内,但剩余的2件物品不能再拿去塞入其他容器内。

    尽可能地塞满所有容器,返回塞满了的容器个数。

    解题思路

    一开始我没注意到可以不塞完这个条件,于是直接返回计算交集元素个数。

    首先,为了尽可能塞满以及减少浪费,需要对两个数组进行降序排序。否则容器内会出现较多空档。

    接下来,就要开始分配物品了。因为分配的物品可以有剩,因此我们从物品数量数组出发,如果当前物品数量大于或等于当前容器容量,既分配给它。如果小于,就说明已经无法给容器塞入物品了。一旦分配成功,直接开始分配下一个物品。

    最终代码

    <?php
    
    class Solution {
    
        /**
         * @param Integer[] $g
         * @param Integer[] $s
         * @return Integer
         */
        function findContentChildren($g, $s) {
            $total = 0;
            foreach($s as $key => $value){
                while( !is_null(key($g)) ){
                    if (current($g)<=$value ){
                        $total++;
                        next($g);
                        break;
                    }
                    next($g);
                }
            }
            return $total;
        }
    }
    

    若觉得本文章对你有用,欢迎用爱发电资助。

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D127 455. Assign

        本文链接:https://www.haomeiwen.com/subject/ejvipktx.html