解题步骤

  1. 对饼干数组和胃口数组升序排序
  2. 遍历饼干数组,找到能满足第一个孩子的饼干
  3. 然后继续遍历饼干数组,找到满足第二、三、…、n 个孩子的饼干

通过贪心算法的方式实现

  • 时间复杂度:O (n * logn)
  • 空间复杂度:O (1)

    1. function findContentChildren(g, s) {
    2. g.sort((a, b) => a - b);
    3. s.sort((a, b) => a - b);
    4. let i = 0;
    5. s.forEach((n) => {
    6. if (n >= g[i]) {
    7. i++;
    8. }
    9. });
    10. return 1;
    11. }

    因为 sort 排序算法的时间复杂度是 O (n logn),而下面 forEach 循环的时间复杂度是 O (n),所以要取量级最大的时间复杂度是 O (n * logn)。代码中没有临时存储会线性增长的变量,所以空间复杂度是 O (1)