leetcode-159周赛-5233-规划兼职工作
Posted 真不知道叫啥好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-159周赛-5233-规划兼职工作相关的知识,希望对你有一定的参考价值。
方法:
class Solution: def jobScheduling(self, startTime: List[int], endTime: List[int], profit: List[int]) -> int: idx=[i for i in range(len(startTime))] idx.sort(key=lambda i:endTime[i]) dp = [0 for i in range(len(startTime))] dp[idx[0]]=profit[idx[0]] for i in range(1,len(startTime)): l=0 r=i-1 while(l<r): mid = int((l+r+1)/2) if(endTime[idx[mid]] > startTime[idx[i]]): r=mid-1 else: l=mid if(endTime[idx[l]]<=startTime[idx[i]]): dp[idx[i]]=max(dp[idx[l]]+profit[idx[i]],dp[idx[i-1]]) else: dp[idx[i]]=max(profit[idx[i]],dp[idx[i-1]]) return max(dp)
以上是关于leetcode-159周赛-5233-规划兼职工作的主要内容,如果未能解决你的问题,请参考以下文章
力扣 每日一题 1235. 规划兼职工作难度:困难,rating: 2022(动态规划+二分查找)
数据结构与算法之深入解析“规划兼职工作”的求解思路与算法示例