标签:inf time pre job range sort obs 方法 div
方法:
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)
标签:inf time pre job range sort obs 方法 div
原文地址:https://www.cnblogs.com/oldby/p/11712209.html