分发饼干100%AC题解
2026-03-22 20:00:23
发布于:上海
9阅读
0回复
0点赞
解题思路说明
输入处理:读取饼干数量n、孩子数量m,并用两个一维数组分别存储饼干大小和孩子需求,通过极简的空体 for 循环完成数据录入;
排序预处理:对饼干数组和孩子需求数组均进行升序排序,为贪心匹配做准备;
贪心匹配:用单 for 循环 + 双指针(i遍历饼干、j遍历孩子)实现核心逻辑 —— 遍历过程中,若当前饼干能满足当前孩子需求,则计数c加 1,同时移动孩子指针j(匹配下一个孩子);若不满足则仅移动饼干指针i(尝试更大的饼干);
结果输出:最终输出满足条件的孩子总数c。
核心逻辑本质
通过排序让 “最小的可用饼干匹配最小的需求”,最大化满足的孩子数量,是贪心算法在分配问题中的典型应用。
100%AC代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
int a[10005],b[10005];
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<m;i++){
cin>>b[i];
}
sort(a,a+n);
sort(b,b+m);
int i=0,j=0;
while(i<n&&j<m){
if(a[i]>=b[j]){
ans++;
i++;
j++;
}else{
i++;
}
}
cout<<ans;
return 0;
}
这里空空如也




有帮助,赞一个