Maximum Profit in Job Scheduling LeetCode solution in Python
1# Runtime: 990 ms (Top 41.71%) | Memory: 47.5 MB (Top 21.04%)2class Solution:3def jobScheduling(4self, startTime: List[int], endTime: List[int], profit: List[int]5) -> int:6n = len(startTime)7jobs = list(zip(startTime, endTime, profit))8jobs.sort()9startTime.sort()1011@lru_cache(None)12def recur(i):13if i == n:14return 015j = bisect_left(startTime, jobs[i][1])16one = jobs[i][2] + recur(j)17two = recur(i + 1)18return max(one, two)1920return recur(0)