leetcode1010

 1 class Solution:
 2     def numPairsDivisibleBy60(self, time: 'List[int]') -> int:
 3         sums = 0
 4         s = {}
 5         n = len(time)
 6         if n>=20:
 7             targets = []
 8             for i in range(1,19):
 9                 targets.append(60*i)
10             for i in range(len(time)):
11                 cur = time[i]
12                 for tar in targets:
13                     cop = tar - cur
14                     if cop < 0:
15                         continue
16                     elif cop > 500:
17                         break
18                     elif cop in s.keys():
19                         sums += s[cop]
20                 if cur in s.keys():
21                     s.update({cur:s[cur]+1})
22                 else:
23                     s.update({cur:1})
24         else:
25             for i in range(len(time)):
26                 for j in range(i+1,len(time)):
27                     if (time[i]+time[j])%60==0:
28                         sums+=1
29         return sums

 下面这个是简写:

1 class Solution:
2     def numPairsDivisibleBy60(self, time: 'List[int]') -> int:
3         c = collections.Counter()
4         res = 0
5         for t in time:
6             res += c[-t % 60]
7             c[t % 60] += 1
8         return res

 

转载于:https://www.cnblogs.com/asenyang/p/10546836.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值