LeetCode 455.分发饼干
题目
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
示例 1:
1 |
|
示例 2:
1 |
|
提示:
- 1 <= g.length <= 3 * 104
- 0 <= s.length <= 3 * 104
- 1 <= g[i],s[j] <= 231 - 1
思路
来不及写了,先放代码,后面补上。
3.21补
采用贪心算法。原始问题可以划分为给每一个孩子分配饼干。而子问题的最优解就是使用最小的饼干满足当前孩子。
1 |
|
** 注:**
一个经常用到的函数
sort()
:
1
2
3
4
5
6
// 该函数存在与<algorithm>头文件中,因此在使用该函数前,程序中应包含如下语句:
#include <algorithm>
// 对 [first, last) 区域内的元素做默认的升序排序
void sort (RandomAccessIterator first, RandomAccessIterator last);
// 按照指定的 comp 排序规则,对 [first, last) 区域内的元素进行排序
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
参考文章:
LeetCode 455.分发饼干
https://excelius.xyz/leetcode-455-分发饼干/