朋友们,今天的题目是👉适龄的朋友
 
文章目录
废话不多说,我们直接看题🔥🔥🔥
一、题目要求

 

二、题目解析
对于发送好友请求的三个前提条件👇
即ages[y]需要满足下面式子:
 
三、逻辑分析


四、代码展示
static int cmp(const void * pa, const void * pb) {
    return *(int *)pa - *(int *)pb;
}
int numFriendRequests(int* ages, int agesSize){
    //用qsort函数对ages进行升序排序
    qsort(ages, agesSize, sizeof(int), cmp);
    int left = 0, right = 0, count = 0;
    for (int i = 0; i < agesSize; ++i) {
        //当ages[x]<15时,没有符合要求的ages[y]
        if (ages[i] < 15) {
            continue;
        }
        while (ages[left] <= 0.5 * ages[i] + 7) {
            ++left;
        }
        while (right + 1 < agesSize && ages[right + 1] <= ages[i]) {
            ++right;
        }
        count += right - left;
    }
    return count;
}
 
五、总结
希望对大家有帮助!!!一起加油吧✊
我们下次再见!
 










