码迷,mamicode.com
首页 > 其他好文 > 详细

1010. 总持续时间可被 60 整除的歌曲

时间:2020-07-11 16:45:42      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:时间   isp   play   tor   display   持续时间   solution   +=   spl   

[1010. 总持续时间可被 60 整除的歌曲](1010. 总持续时间可被 60 整除的歌曲)

技术图片

  • 有这样一个性质:

\[(a+b)\%c=0-->(a\%c+b\%c)\%c=0 \]

我们可以用map将每个数对应的取模结果还有个数存起来,这样i从[1,30) , \(map[i]*map[60-i]\) 就是一部分的解了,
这样就不用考虑顺序了,每种情况这样相乘就行了,还有当i=30的时候, 就是n*(n-1)/2的结果,n就是30的个数,
同理不要忘了样例2的情况就是模为0的情况,和为30时同样的操作,n*(n-1)/2,累加即可。
class Solution {
public:
    int numPairsDivisibleBy60(vector<int>& time) {
        map<int,int>mp;
        for(int i=0;i<time.size();i++)
        {
                mp[time[i]%60]++;
        }
           // cout<<endl;
        int cnt=0;
        for(int i=1;i<30;i++)
            cnt+=mp[i]*mp[60-i];
        cnt+=mp[30]*(mp[30]-1)/2;
        int ll=mp[0];
        cnt+=ll*(ll-1)/2;
        return cnt;
    }
};

1010. 总持续时间可被 60 整除的歌曲

标签:时间   isp   play   tor   display   持续时间   solution   +=   spl   

原文地址:https://www.cnblogs.com/Vampire6/p/13284089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!