每日力扣算法题(简单篇)

455.分发饼干

原题:

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

解题思路:

读题发现适合采用贪心的思路,先把刚刚好能满足的发出去,再把剩下的大于等一个小孩的胃口的饼干发出去,由于数据不一定有序所有需要先排序再发放。

知识储备:

qsort函数,函数原型qsort(指针,要排序的元素个数,每个元素所占字节数,比较函数指针)

详细请见:每日力扣算法题(简单篇)-CSDN博客​​​​​​

都看到这里了点个赞吧,可以的话点个关注吧。

源代码:

复制代码
int cmp(const void* a,const void* b)
{
    int numa=*(int*)a;
    int numb=*(int*)b;
    return numa>numb?1:-1;
}
int findContentChildren(int* g, int gSize, int* s, int sSize) {
    qsort(g,gSize,sizeof(int),cmp);
    qsort(s,sSize,sizeof(int),cmp);
    int top=0,count=0;
    for(int i=0;i<sSize&&top<gSize;i++)
    {
        if(g[top]<=s[i])//先把刚好能满足一个小孩胃口的饼干分出去
        {
            s[i]=0;
            top++;
        }
    }
    for(int i=sSize-1;i>=0&&top<gSize;i--)
    {
        if(g[top]>s[i])//这个小孩的胃口比最大的饼干还大
        {
            break;
        }else
        {
            top++;
        }
    }
    return top;
}
相关推荐
youtootech7 小时前
HarmonyOS《柚兔学伴》项目实战09-待办列表 UI——List+ForEach+滑动删除
数据结构·ui·华为·list·harmonyos
:-)8 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
Jerry12 小时前
LeetCode 101. 对称二叉树
算法
可编程芯片开发13 小时前
基于MPPT最大功率跟踪的离网光伏发电系统Simulink建模与仿真
算法
AI科技星13 小时前
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲
线性代数·算法·矩阵·数据挖掘·回归·乖乖数学·全域数学
米罗篮13 小时前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)
c++·线性代数·算法·矩阵
dream_home840713 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
大鱼>14 小时前
多宠物家庭智能管理平台:云端架构与多设备协同实战
python·算法·iot·宠物
To_OC15 小时前
LC 22 括号生成:刷完这道题,我终于搞懂回溯剪枝了
javascript·算法·leetcode
To_OC15 小时前
LC 39 组合总和:回溯入门必刷题,我踩过的两个坑都在这了
javascript·算法·leetcode