关注
第二题你这个代码如果在自己电脑上,会递归深度超出,所以我把数据范围缩小到1-100了,后面附上测试代码和结果:
import time
import random
import math
from collections import defaultdict
def solution(n,input):
result = 0
dp_dict = defaultdict(int)
dp_dict[1] = 0
input_max = max(input)
for number in range(2,input_max):
if number not in dp_dict:
dp_dict[number] = dp_dict[number-1] + 1
if number + 1 in dp_dict:
dp_dict[number+1] = min(dp_dict[number+1],dp_dict[number]+1)
else:
dp_dict[number+1] = dp_dict[number] + 1
for second in range(2,min(number+1,int(math.sqrt(input_max))+1)):
if number * second > input_max:
break
if number * second in dp_dict:
dp_dict[number*second] = min(dp_dict[number*second], dp_dict[number]+dp_dict[second]+1)
else:
dp_dict[number*second] = dp_dict[number]+dp_dict[second]+1
for number in input:
result += dp_dict[number]
return result
查看原帖
点赞 6
相关推荐
10-24 16:44
同济大学 算法工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我是面试官,请用一句话让我破防 #
16084次浏览 100人参与
# 美团开奖 #
183385次浏览 969人参与
# “vivo”个offer #
33009次浏览 247人参与
# 校招生月薪1W算什么水平 #
15354次浏览 112人参与
# 中美关税战对我们有哪些影响 #
37793次浏览 306人参与
# i人适合做什么工作 #
7923次浏览 81人参与
# 快手技术岗信息交流阵地 #
15754次浏览 82人参与
# 读研or工作,哪个性价比更高? #
75241次浏览 762人参与
# 华为保温 #
102426次浏览 383人参与
# 哪些瞬间让你真切感受到了工作的乐趣 #
17214次浏览 79人参与
# 小厂实习有必要去吗 #
69916次浏览 344人参与
# 哪些行业值得去? #
2907次浏览 40人参与
# 秋招什么时候开投比较合适? #
109837次浏览 807人参与
# 如果秋招能重来,我会____ #
29650次浏览 255人参与
# 华为池子有多大 #
107479次浏览 748人参与
# 美团求职进展汇总 #
2806064次浏览 23836人参与
# 上班后和你想的一样吗? #
87487次浏览 666人参与
# 苦尽甘来时,再讲来时路 #
26312次浏览 359人参与
# 为了实习逃课值吗? #
23194次浏览 214人参与
# 大家实习每天都在干啥 #
97135次浏览 536人参与
# 工作压力大怎么缓解 #
119699次浏览 1112人参与
# 如果上班像打游戏,你最想解锁什么技能 #
5627次浏览 55人参与
