力扣455,给小朋友发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
对每个孩子 i
,都有一个胃口值 g[i]
,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j
,都有一个尺寸 s[j]
。
如果 s[j]>= g[i]
,我们可以将这个饼干 j
分配给孩子 i
,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值
思路:先把胃口和饼干排一下序,从大到小看一下每块饼干是否能喂饱小朋友,如果不能喂饱,只能用最大的喂饱下一个小朋友了
代码流程:先int型qsort一下,用法需要记住,非双for嵌套代码编写流程
知识点:函数结构,int使用,以及头文件
#include<stdlib.h> int findContentChildren(int* g, int gSize, int* s, int sSize) { if(!(gSize*sSize)) return 0; int cmp(const *a,const *b) { return *a-*b; } qsort(g,gSize,sizeof(int),cmp); qsort(s,sSize,sizeof(int),cmp);int start=sSize-1; int count=0; for(int j=gSize-1;j>=0;j--) { if((start>=0)&&(s[start]>=g[j]))//此处如果把(start>=0)放在后面,力扣编译错误,vscode编译成功,原因当start<0时,再进入if进行判断时s[start]已经发生越界 { start--; count++; } } return count;
} 标签:gSize,饼干,int,455,力扣,start,sSize,贪心 From: https://www.cnblogs.com/lzj1996/p/17972125