Leetcode825. 适龄的朋友

该博客主要介绍了LeetCode第825题——适龄的朋友。题目要求找出数组中符合年龄条件的朋友配对数,条件是年龄在15岁以上,且不找比自己大的朋友,不找比自己小很多的朋友。解决方案是通过排序数组,然后遍历找到符合条件的配对。代码中包含两个关键函数:`numFriendRequests`用于计算配对数,`getMinAgePerson`用于找到最小可能的合适朋友的年龄。
摘要由CSDN通过智能技术生成

Leetcode825. 适龄的朋友

1. 问题描述

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

2. 思路

  1. 找朋友不找比自己大的
  2. 找朋友不找比自己小的多的

3. 代码

func numFriendRequests(ages []int) int {
    var res int
    sort.Ints(ages)
    for i := 0; i < len(ages); i++ {
        if ages[i] < 15 {
            continue
        }
        index := getMinAgePerson(ages[i], ages)
        j := i
        for j + 1 < len(ages) && ages[j+1] == ages[i] {
            j++
        }
        res += j - index
    }
    return res
}

func getMinAgePerson(age int, ages []int) int {
    i := 0
    // fmt.Printf("ages[i] == %v, age / 2 + 7 == %v\n", ages[i], age / 2 + 7)
    for ages[i] < age && ages[i] <= age / 2 + 7 {
        i++
    }
    return i
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值