题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
# 获得砝码种数n # 获得砝码重量weigh # 获得每个砝码个数nums=[] # 获得砝码乘个数的重量 # 初始化set(),temp,加入砝码i,遍历 n=int(input()) weight=list(map(int,input().split())) nums=list(map(int,input().split())) famas=[] path={0,} for i in range(n): for j in range(nums[i]): famas.append(weight[i]) # 记录出现次数 for i in famas: temp=list(path) for j in temp: path.add(i+j) print(len(path))
famas记录每个砝码出现次数,往集合里面加入每个砝码,具体步骤是:遍历temp,每一个元素加入当前砝码重量,在加入path里面。更新path集合;得到答案就是砝码范围