#网易互娱笔试2020-4-11数据挖掘岗
在网上没找到组织的我。。。
多少道选择题忘了 两道编程题 一道AC 一道28多 求指教
第一道 求列表内三个元素之和等于一个target 求个数
(匆匆忙忙有点乱 没整理 通过就好 哈哈)
枚举只能80% 这应该是卡时间了吧
我的思路就是把列表一个塞进set 一个塞进字典
先考虑三个数各不相同 用的枚举
再考虑有两个数相同 三个或三个以上数相同
import sys
from collections import Counter
if __name__=="__main__":
a = list(sys.stdin.readline().strip().split(','))
a = [int(i) for i in a]
a_s = list(set(a[1:]))
a_d = dict(Counter(a[1:]))
count = 0
for i in range(0,len(a_s)):
for j in range(i+1,len(a_s)):
for k in range(j+1,len(a_s)):
if a_s[i]+a_s[j]+a_s[k] == a[0]:
count+=a_d[a_s[i]]*a_d[a_s[j]]*a_d[a_s[k]]
for i in a_d:
if a_d[i] == 2:
for j in a_s:
if 2*i + j == a[0] and i!=j:
count+=a_d[j]
if a_d[i] >= 3:
if 3*i == a[0]:
c = 1
for j in range(3):
c *= a_d[i]-j
c = c//6
count += c
for j in a_s:
if 2*i + j == a[0] and i!=j:
c = 1
for k in range(2):
c*=a_d[i]-k
c = c//2
count+=c*a_d[j]
print(count) 第二道 打副本
profit_list = [1,2,3,4,5]
随意位置开始 开始跳跃 不能相邻 求最大利益
我不造是不是可以一下子跨两个 要是不可以的话 我的想法就是建个二叉树 递归求和 奈何时间不够 功底不足
也不造有没有负数😔


