朋友们,今天的题目是👉适龄的朋友
文章目录
废话不多说,我们直接看题🔥🔥🔥
一、题目要求
二、题目解析
对于发送好友请求的三个前提条件👇
即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;
}
五、总结
希望对大家有帮助!!!一起加油吧✊
我们下次再见!