题目描述
当满足以下条件时,A 不能给 B(A、B不为同一人)发送好友请求:
否则,A 可以给 B 发送好友请求。
求总共会发出多少份好友请求?
示例 1:
输入: [16,16]
输出: 2
解释: 二人可以互发好友申请。
示例 2:
输入: [16,17,18]
输出: 2
解释: 好友请求可产生于 17 -> 16, 18 -> 17.
示例 3:
输入: [20,30,100,110,120]
输出: 3
解释: 好友请求可产生于 110 -> 100, 120 -> 110, 120 -> 100.
说明:
1 <= ages[i] <= 120.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/friends-of-appropriate-ages
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
class Solution { public: int numFriendRequests(vector<int>& ages) { map<int,int> mp; int len = ages.size(),ans = 0; for(int i=0;i<len;i++) mp[ages[i]]++; for(auto ita = mp.begin();ita!=mp.end();ita++){ int ta = ita->first,t = ita->second; if(ta<15) continue; ans += t*(t - 1); for(auto itb = mp.begin();itb!=mp.end();itb++){ int tb = itb->first; if(ta == tb) break; if(tb<15) continue; if(ta/2+7 < tb) ans += itb->second * t; } } return ans; } };
文章来源: https://blog.csdn.net/weixin_35338624/article/details/91398586