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(动态规划+二分查找)

LeetCode 1235. 规划兼职工作

LeetCode159.至多包含两个不同字符的最长子串

数据结构与算法之深入解析“规划兼职工作”的求解思路与算法示例

LeetCode 双周赛 104(2023/05/13)流水的动态规划,铁打的结构化思考

LeetCode 1235 规划兼职工作[动态规划 二分查找] HERODING的LeetCode之路