关注
第二题你这个代码如果在自己电脑上,会递归深度超出,所以我把数据范围缩小到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
相关推荐
点赞 评论 收藏
分享
02-04 17:01
南昌大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# xx岗简历求拷打 #
13694次浏览 136人参与
# 如何看待offer收割机的行为 #
1048887次浏览 6609人参与
# 开工第一帖 #
47102次浏览 877人参与
# 互联网回暖,腾讯要招5000人! #
25360次浏览 598人参与
# 有转正机会的小厂实习值得去吗? #
10624次浏览 112人参与
# 产运销实习日记 #
88216次浏览 688人参与
# 这些公司卡简历很严格 #
88784次浏览 395人参与
# 硬件人求职现状 #
506211次浏览 4803人参与
# 掌握什么AI技能,会为你的求职大大加分 #
10893次浏览 448人参与
# 聊聊这家公司值得去吗 #
885981次浏览 4720人参与
# 携程求职进展汇总 #
892433次浏览 5920人参与
# 求职季如何保持心态不崩 #
214517次浏览 1471人参与
# 面试反问你会问什么 #
169712次浏览 1744人参与
# 机械人还在等华为开奖吗? #
316325次浏览 1586人参与
# 你最讨厌面试被问什么 #
11350次浏览 130人参与
# 机械人的秋招小目标 #
29106次浏览 244人参与
# 如何看待应届生身份? #
229032次浏览 2297人参与
# 远程面试的尴尬瞬间 #
329267次浏览 1919人参与
# 金三银四,你有感觉到吗 #
697033次浏览 6097人参与
# 制造业的秋招小结 #
145120次浏览 2095人参与
OPPO公司福利 1254人发布