1. 程式人生 > 其它 >leetcode-455. 分發餅乾

leetcode-455. 分發餅乾

題目

https://leetcode-cn.com/problems/assign-cookies/

解法

直覺思路
先排序,然後根據胃口最小的孩子找能滿足的最小的餅乾

class Solution {

    /**
     * @param Integer[] $g
     * @param Integer[] $s
     * @return Integer
     */
    function findContentChildren($g, $s) {
        sort($g);
        sort($s);
    
        $ret = 0;
		$sKey = 0;
        foreach ($g as $gItem) {
            while(($sItem = reset($s)) !== false) {
                if ($sItem >= $gItem) {
                    $ret ++;
                    array_shift($s);
                    break;
                } else {
                    array_shift($s);
                }
            }
        }
        
        return $ret;
    }
}

因為 array_shift 會對陣列做調整的原因,效能會比較差一點,可以做一點小優化

class Solution {
    
    /**
     * @param Integer[] $g
     * @param Integer[] $s
     * @return Integer
     */
    function findContentChildren($g, $s) {
        sort($g);
        sort($s);
        
        $ret  = 0;
        $sKey = 0;
        foreach ($g as $gItem) {
            for ($j = $sKey; $j < count($s); $j++) {
                $sKey++;
                if ($s[$j] >= $gItem) {
                    $ret++;
                    break;
                }
            }
        }
        
        return $ret;
    }
}

本文來自部落格園,作者:吳丹陽-cn,轉載請註明原文連結:https://www.cnblogs.com/wudanyang/p/15531372.html