leetcode1010

class Solution {
    public int numPairsDivisibleBy60(int[] time) {
        int count = 0;
        int[] seconds = new int[60];
        for(int t : time) {
            seconds[t % 60] += 1; 
        }
        count += (seconds[0]*(seconds[0]-1)/2+seconds[30]*(seconds[30]-1)/2);
        int i = 1, j = 59;
        while(i < j) {
            count += seconds[i++] * seconds[j--];
        }
        return count;
    }
}

其实用hash的思想我已经想到了,但是没有注意到它的特殊性,也就是组合方式的多样性,余数为0和余数为30的需要特殊考虑,也就是各自K*(K-1)/2,然后其他的从1-29对应到31-59都是m乘n的计数方式。

这其实是一道组合数字的题目。

全部评论

相关推荐

03-11 14:28
浙江大学 设计
牛客小黄鱼:代入一下,独居女生会觉得有点可怕
点赞 评论 收藏
分享
落叶随风呀:学校不好就放两栏,专业能力往前移, 政治面貌不是党员不如不写,籍贯湖南衡阳,或者湖南,浅尝辄止 基本信息排版不够美观,没有对齐 简历上花里胡哨的东西去掉 项目我不评价,因为我能力有限,且对mcu了解不足 但是这份简历掌握的水平,你可以海投试试,工作没问题但是工资应该不会高,因为搞mcu的小公司多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务