0
点赞
收藏
分享

微信扫一扫

【有趣的编程题之适龄的朋友】(Leetcode原题详解)

乐百川 2022-04-21 阅读 30
c#

朋友们,今天的题目是👉适龄的朋友

文章目录


废话不多说,我们直接看题🔥🔥🔥

一、题目要求

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

二、题目解析

对于发送好友请求的三个前提条件👇

即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;
}

五、总结

希望对大家有帮助!!!一起加油吧✊

我们下次再见!
请添加图片描述

举报

相关推荐

0 条评论