9月5日freewheel笔试

1. 求每一层的最小时间消耗,然后再相加AC100%
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
from collections import deque
class Solution:
    def GetMinTimeCost(self , root , failId , timeCost ):

        def get_failroot(troot):
            if troot is None:
                return troot
            if troot.val == failId:
                return troot
            res = get_failroot(troot.left)
            if res is not None:
                return res
            return get_failroot(troot.right)

        failroot = get_failroot(root)

        # write code here
        q = deque([[1,failroot]])
        inf = int(1e9+7)
        curtime = 0
        level = 0
        high = []
        thigh = -1
        while len(q):
            tlevel,troot = q[0]
            q.popleft()
            if troot is None:
                continue
            if tlevel!= level:
                high.append(curtime)
                curtime = inf
                level = tlevel
            if troot.val< len(timeCost):
                curtime = min(curtime,timeCost[troot.val])
            if troot.val == failId:
                thigh = tlevel
            q.append([tlevel+1,troot.left])
            q.append([tlevel+1,troot.right])
        if thigh ==-1:
            return 0
        res = sum(high)-sum(high[:thigh])
        return res
2. 类似俄罗斯套娃AC100%

class Solution:
    def maxPreRolDuration(self , orders ):
        # write code here
        new_orders = []
        for i in range(len(orders)):
            torders = sorted(orders[i][:-1],reverse=True)+orders[i][-1:]
            new_orders.append(torders)

        orders = sorted(new_orders,reverse=True)
        n = len(orders)
        dp= [0]*n
        # dp[0] = orders[0][0]*orders[0][3]
        for i in range(n):
            dp[i] =orders[i][0]*orders[i][3]

            for j in range(i):
                if orders[i][0]<= orders[j][0] and orders[i][1]<= orders[j][1] and orders[i][2]<= orders[j][2] :
                    dp[i] = max(dp[i],dp[j]+orders[i][0]*orders[i][3])

        return max(dp)


#FreeWheel##笔经#
全部评论
9月10号前投递简历的,随机抽取5位幸运儿送上ipad一个~  入职配工作电脑之外,还送个人(iphone/macbook二选一),并报销来京机票  sp offer可使用公司名额申报北京户口  投递:https://www.nowcoder.com/discuss/732239
点赞 回复 分享
发布于 2021-09-05 23:49
谢谢提供ac代码
点赞 回复 分享
发布于 2021-09-06 17:25
通知面试了吗
点赞 回复 分享
发布于 2021-09-08 12:28
通知面试了吗?
点赞 回复 分享
发布于 2021-09-08 19:35

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
3 9 评论
分享
牛客网
牛客企业服务