#684. 贪心算法(二)-训练2-1
贪心算法(二)-训练2-1
题目描述
假设你是一位很棒的家长,想要给你的n个孩子们分发m块小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。 如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。 你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
输入格式
第一行一个正整数n表示孩子数量(n<=10),后面一行 n个正整数表示每个孩子的胃口值g。 第三行一个正整数 m表示饼干的数量(m<=20), 后面一行 m个正整数表示每块饼干的尺寸s。
输出格式
最多能满足多少孩子。
样例
输入样例 1
3
1 2 3
2
1 1
输出样例 1
1
输入样例 2
2
1 2
3
2 1 3
输出样例 2
2
输入样例 3
3
1 2 3
3
1 1 2
输出样例 3
2
提示
思路:典型贪心策略,尽可能的用小饼干喂饱胃口小的孩子。 首先将两个数组升序排序; 顺序遍历两个数组: 1、如果当前饼干喂不饱当前的小孩,那么后面所有的小孩肯定也喂不饱, 所以直接查看下一个饼干能否喂饱当前的小孩,直到一个饼干可以喂饱当前的小孩 统计结果加1; 2、继续给下一个孩子找饼干。