当前位置: 面试刷题>> 分饼干 (经典算法题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 示例代码

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 示例代码

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 示例代码

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

// 码小课网站中有更多相关内容分享给大家学习
推荐面试题