当前位置: 面试刷题>> 分饼干 (经典算法题500道)


### 题目描述补充 **题目:分饼干** 假设你是一名幼儿园的老师,手上有一些不同大小的饼干和一群孩子,每个孩子对饼干的大小有一定的偏好(即他们可能想要吃大饼干或小饼干,但不能是中等大小的)。你需要编写一个程序来决定是否可以将饼干分给每个孩子,使得每个孩子都得到至少一块他们想要的饼干。 **输入**: 1. 一个整数数组 `cookies`,表示饼干的大小。 2. 一个整数数组 `kids`,表示每个孩子想要的最小饼干大小。 **输出**: - 如果可以给每个孩子都分到一块他们想要的饼干,则返回 `true`。 - 否则,返回 `false`。 **示例 1**: ``` 输入: cookies = [1,2,3], kids = [1,2] 输出: true 解释: 你可以将大小为 1 和 2 的饼干分别分给两个孩子。 ``` **示例 2**: ``` 输入: cookies = [1,2], kids = [1,3] 输出: false 解释: 只有一个孩子能分到想要的饼干,另一个孩子无法得到满足。 ``` ### PHP 示例代码 ```php function canDistributeCookies($cookies, $kids) { // 对饼干和孩子想要的饼干大小进行排序 sort($cookies); sort($kids); $cookieIndex = 0; // 饼干数组的索引 $kidIndex = 0; // 孩子数组的索引 // 遍历每个孩子 while ($kidIndex < count($kids) && $cookieIndex < count($cookies)) { if ($cookies[$cookieIndex] >= $kids[$kidIndex]) { // 当前饼干满足当前孩子的需求 $cookieIndex++; } $kidIndex++; } // 如果遍历完所有孩子,说明每个孩子都得到了饼干 return $kidIndex == count($kids); } // 测试用例 echo canDistributeCookies([1,2,3], [1,2]) ? 'true' : 'false'; // 输出 true echo canDistributeCookies([1,2], [1,3]) ? 'true' : 'false'; // 输出 false ``` ### Python 示例代码 ```python def canDistributeCookies(cookies, kids): cookies.sort() kids.sort() cookie_index = 0 kid_index = 0 while kid_index < len(kids) and cookie_index < len(cookies): if cookies[cookie_index] >= kids[kid_index]: cookie_index += 1 kid_index += 1 return kid_index == len(kids) # 测试用例 print(canDistributeCookies([1,2,3], [1,2])) # 输出 True print(canDistributeCookies([1,2], [1,3])) # 输出 False ``` ### JavaScript 示例代码 ```javascript function canDistributeCookies(cookies, kids) { cookies.sort((a, b) => a - b); kids.sort((a, b) => a - b); let cookieIndex = 0; let kidIndex = 0; while (kidIndex < kids.length && cookieIndex < cookies.length) { if (cookies[cookieIndex] >= kids[kidIndex]) { cookieIndex++; } kidIndex++; } return kidIndex === kids.length; } // 测试用例 console.log(canDistributeCookies([1,2,3], [1,2])); // 输出 true console.log(canDistributeCookies([1,2], [1,3])); // 输出 false // 码小课网站中有更多相关内容分享给大家学习 ```
推荐面试题