825. Friends Of Appropriate Ages

weixin_34185364發表於2018-10-13

握手定理
年齡為i的人,和年齡為j的人,最終可配對r(i)Xr(j),同齡人之間可配對數為r(i)X(r(i)-1)

class Solution {
public:
    /*
    小於等於14,是不可以滴,所以直接從15開始取值
    */
    int numFriendRequests(vector<int>& ages) {
        vector<int> ren(121,0);
        for(auto age:ages) ren[age]++;
        int result = 0;
        for(int i =15,minage=15,sumage=0;i<121;sumage+=ren[i],result+=ren[i++]*(sumage-1))
            while(minage<=0.5*i+7) sumage -=ren[minage++];
        
        return result;
    }
};

相關文章