455. 分发饼干

本题属于数组类的题目,主要考查排序算法。

分发饼干

  1. 题目分类,个人感觉这是一个数组类的题,考查了排序算法;

  2. 先对g和s进行从小到大的排序;

  3. 遍历g和s, 直到某一个被遍历完即结束;

  4. 这里有一个注意的地方就是如果s[j]比g[i]小的情况,只递增j的记号,主要考虑用例如下:

    [5,6,7,8,9]
    [1,2,5,6,7]

  5. 结束返回cnt;

int cmp(const void *a, const void *b) {
    return *(int *)a - *(int *)b;
}
int findContentChildren(int* g, int gSize, int* s, int sSize){
    qsort(g, gSize,sizeof(g[0]),cmp);
    qsort(s, sSize, sizeof(s[0]),cmp);
    int i,j;
    int cnt = 0;
    i = 0;
    j = 0;
    while(i<gSize&& j<sSize) {
        if(s[j]<g[i]) {
            ;//do nothing,
        } else if(s[j]>=g[i]){
            cnt++;
            i++;
        }
        j++;
    }
    return cnt;
}
posted @ 2020-12-25 19:26  cn风  阅读(82)  评论(0)    收藏  举报