阿里笔试8.21求助

def findPath(nums):
    if not nums:return 0
    if len(nums)==1:return nums[0]
    if len(nums)==2:return max(nums)
    if len(nums)==3:return sum(nums)
    n=len(nums)
    stage1=nums[0]+nums[1]+nums[-1]+nums[1]
    stage2=nums[0]+nums[-1]+nums[0]+nums[-2]
    return min(stage1,stage2)+findPath(nums[:n-2])
k=int(input())
for _ in range(k):
    n=int(input())
    nums=sorted(list(map(int,input().split(" "))))
    print(findPath(nums))
8.21晚笔试第一题报零,事后回忆总结代码如下。个人认为思路是没错的。自测也没问题,但是每次提交只能通过百分之十,然后报错
跪求各位大佬们解个惑,本菜鸡感激不尽
全部评论
用递归层数太深,栈会溢出,直接用while迭代就好了
点赞 回复 分享
发布于 2020-08-21 22:54

相关推荐

10-29 15:38
门头沟学院 Java
榕城小榕树:难道你简历里写了配送路径优化算法?
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务