2022年10月29日 星期六

[1395] Count Number of Teams

又到了覺得自己不會寫扣的時候!
原來只要紀錄每個單兵左邊比較小的個數和右邊比較大的個數然後相乘他們再加起來就好了嗎!
寫程式真難Orz (其實是數學真難嗎QQ)

int numTeams(int* rating, int ratingSize){
    int count = 0;
    int i,j;
    for (i=0;i<ratingSize;i++)
    {
        int in_left=0, in_right=0; 
        int de_left=0, de_right=0; 

        for(j=0; j<ratingSize;j++)
        {
            if(i==j)
                continue;
            else if (j<i)
                (rating[j] < rating[i])?(in_left++):(de_left++);
            else //(j>i)
                (rating[j] < rating[i])? (de_right++):(in_right++);
        
        }
        count += in_left*in_right +de_left*de_right;
    }
    
    return count;
}

沒有留言:

張貼留言