【贪心】分发饼干

2.PNG

解题思路:贪心算法

1.将孩子胃口值数组和饼干尺寸数组排序,使他们都为升序

2.遍历饼干尺寸数组,当s[i] >= g[i]时,并且喂饱孩子小于孩子总数时喂饱孩子数+1*(这里是先用小饼干喂饱胃口小的孩子的贪心,也可以采用先用大饼干喂饱胃口大的孩子的贪心算法)*

int cmp(int* a, int* b) {
    return *a - *b;
}

int findContentChildren(int* g, int gSize, int* s, int sSize){
    if(sSize == 0)
        return 0;
    
    //将两个数组排序为升序
    qsort(g, gSize, sizeof(int), cmp);
    qsort(s, sSize, sizeof(int), cmp);

    int numFedChildren = 0;
    int i = 0;
    for(i = 0; i < sSize; ++i) {
        if(numFedChildren < gSize && g[numFedChildren] <= s[i])
            numFedChildren++;
    }
    return numFedChildren;
}

1.PNG