关注
第二题你这个代码如果在自己电脑上,会递归深度超出,所以我把数据范围缩小到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
相关推荐
查看6道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你实习是赚钱了还是亏钱了? #
6332次浏览 55人参与
# 找工作八股要背到什么程度? #
4871次浏览 88人参与
# 京东开奖 #
434129次浏览 2460人参与
# 秋招开始捡漏了吗 #
35562次浏览 247人参与
# 我在牛爱网找对象 #
203149次浏览 1412人参与
# 用一句话形容你的团队氛围 #
3982次浏览 50人参与
# 入职以后才知道的校招谎言 #
102250次浏览 647人参与
# 你找工作是从容有余 or 匆忙滚爬? #
3665次浏览 44人参与
# 上班后,才发现大学__白学了 #
6262次浏览 40人参与
# 同bg的你秋招战况如何? #
161437次浏览 935人参与
# 今年秋招还有金九银十吗 #
26389次浏览 239人参与
# 今年秋招是回暖还是遇冷 #
3903次浏览 30人参与
# 五一之后,实习真的很难找吗? #
90489次浏览 561人参与
# 规定下班时间vs实际下班时间 #
57340次浏览 332人参与
# 学历对求职的影响 #
552961次浏览 3924人参与
# 辞职后的日常 #
16986次浏览 84人参与
# 你喜欢工作还是上学 #
79634次浏览 865人参与
# 打工人的精神状态 #
104008次浏览 1321人参与
# Offer比较,求稳定还是求发展 #
65673次浏览 272人参与
# 分享一个让你热爱工作的瞬间 #
44757次浏览 395人参与
# 一人一个landing小技巧 #
129213次浏览 1467人参与


