解题步骤
- 对饼干数组和胃口数组升序排序
- 遍历饼干数组,找到能满足第一个孩子的饼干
- 然后继续遍历饼干数组,找到满足第二、三、…、n 个孩子的饼干
通过贪心算法的方式实现
- 时间复杂度:O (n * logn)
空间复杂度:O (1)
function findContentChildren(g, s) {
g.sort((a, b) => a - b);
s.sort((a, b) => a - b);
let i = 0;
s.forEach((n) => {
if (n >= g[i]) {
i++;
}
});
return 1;
}
因为 sort 排序算法的时间复杂度是 O (n logn),而下面 forEach 循环的时间复杂度是 O (n),所以要取量级最大的时间复杂度是 O (n * logn)。代码中没有临时存储会线性增长的变量,所以空间复杂度是 O (1)。