[0820]顺丰笔试python版本(租服务器+赏金猎人)

第一题直接AC没占出来…
第二题,结束时间排序+dp
python版本,结尾时间排序做

class mission:
    def __init__(self, l, r, w):
        self.l, self.r, self.w = l, r, w

def main():
    n = int(input())
    if n < 1: return 0
    M = []
    for _ in range(n):
        l, r, w = map(int, input().split())
        M.append(mission(l, r, w))

    # 按结束时间升序排列
    M.sort(key=lambda x: x.r)

    front = [-1 for _ in range(n)]  # 与第i个任务相容的前一个任务编号
    for i in range(n - 1, 0, -1):
        for j in range(i - 1, -1, -1):
            if M[j].r < M[i].l: #这里有个坑,前一个任务的r必须小于后一个任务的l
                front[i] = j
                break

    dp = [0 for _ in range(n)]  # 以第i个任务结尾的最大收益
    dp[0] = M[0].w
    for i in range(1,n):
        if front[i]>=0:
            dp[i] = max(dp[i - 1], dp[front[i]] + M[i].w)
        else:
            dp[i]=max(dp[i-1],M[i].w)

    return dp[-1]


print(main())


#顺丰笔试##笔试题目##顺丰科技#
全部评论
为什么必须小于😂
点赞 回复
分享
发布于 2020-08-20 22:21
哈哈&nbsp;我也是&nbsp;一开始用的小于等于&nbsp;过了91后来改的小于&nbsp;不过这道题还有一个坑&nbsp;就是dp数组要用long来存&nbsp;要不然就溢出了&nbsp;不过python党不用考虑这个问题😂
点赞 回复
分享
发布于 2020-08-20 22:27
联想
校招火热招聘中
官网直投
调了半天还是91,这小于等于真闹心
点赞 回复
分享
发布于 2020-08-21 09:23

相关推荐

点赞 7 评论
分享
牛客网
牛客企业服务