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的计数方式。

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

全部评论

相关推荐

双非也是好起来了😂
努力的冷清人:你这样,哥们不知道上了多少次岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
想问问这里的各位大佬,双非现在找Java很痛苦,大概率第一份Java工作是在中小厂,同时也在试着中大厂的测试岗,现在有个大大的疑惑😦本人缺少锻炼,身体素质只能说及格,能力方面也卷不过大佬,这种情况下,如果运气好毕业去了大厂测试岗,想问问大厂的工作强度真的能大到让人宁愿放弃高薪也要辞职的程度吗,有点害怕自己会受不了几个月就走人,到时候又是测试岗又不是应届生了,以后恐怕就要失业了?再说回Java中小厂,听说中小厂喜欢把很多事情都交给一个人完成,而且也学着大厂加班,工资又低,我很好奇,这样压力难道会比大厂小吗?会更撑不住吧?所以,就是很想知道实际情况是怎样的,都说大厂卷,累,难道小厂就轻松很多吗?...
真是菜菜又菜菜呀:大厂你的领导也是打工的,公司发你多少钱,和他有啥关系?不会因为高薪太为难你,大不了一直都是一般绩效混着。小厂你的领导是公司老板的话,给你发钱会仔细评估你是不是对得起这个工资。。。如果少干了肯定会让你一直加班一直产出。。。压力肯定比大厂大(如果这个是小而美的独角兽那种的就另说,仅针对一般小公司
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务