有意思。感觉和typora很相似hhh。
我的第一篇博客,开始记录我的颠覆之旅。
因为菜才需要不断的去变强,自己不放弃自己,才会让别人看得起自己。加油。
20.11.27
明天考python,今天刷了刷考题,发现leetcode里还有每日题,很不错。那就开始记录自己的刷题吧。
今日第一题,四数相加。
四个list,每个list取1位,四个index放在一个元祖里。使得这四个index所对应的四个值之合为0。
解决方法:(别人的)
- 工具:from collections import counters
-
有点类似于 defaultdict(int)。
-
例子:dic = collections.Counter(a + b for a in A for b in B)
a, b 中的元素,排列组合,所得的值的次数。有了这个字典。我们就去找 c+d == -(a+b)。(新目标)
- 工具:dic.get函数
相当于dic[key] 但是多一个default值。
dic.get(key, default)如果当前key不存在则返回
dic.get(-(c+d), 0)对于所有cd组合取一个负值(如果cd的负值存在,即四数之和位0)所得的数字是ab组合的个数,如果不存在默认为0。
最后取一个sum获得一共的组合数。
return sum(dic.get(-(c+d),0) for c in C for d in D)