当前位置: 面试刷题>> 分饼干 (经典算法题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
// 码小课网站中有更多相关内容分享给大家学习
```