Job Sequencing Problem
Problem Link: https://practice.geeksforgeeks.org/problems/job-sequencing-problem-1587115620/1
class Solution:
#Function to find the maximum profit and the number of jobs done.
def JobScheduling(self,Jobs,n):
# code here
arr=[]
for i in Jobs:
arr.append([i.id,i.deadline,i.profit])
arr.sort(key=lambda x:-x[2])
maxdeadline=0
for i in arr:
maxdeadline=max(maxdeadline,i[1])
jobarr=[-1 for i in range(maxdeadline+1)]
jobarr[0]=0
maxprofit=0
c=0
for i in arr:
jobid=i[0]
deadline=i[1]
profit=i[2]
for idx in range(deadline,-1,-1):
if(idx<len(arr)+1 and jobarr[idx]==-1):
jobarr[idx]=jobid
maxprofit=maxprofit+profit
c+=1
break
return [c, maxprofit]
Last updated