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; } }