job sequencing problem
import java.util.*;
public class JobSequencing {
public static class Job {
int id;
int profit;
int deadline;
public Job(int i, int d, int p) {
id = i;
profit = p;
deadline = d;
}
}
public static void main(String[] args) {
int JobsInfo[][] = { { 4, 20 }, { 1, 10 }, { 1, 40 }, { 1, 30 } };
ArrayList<Job> jobs = new ArrayList<>();
for (int i = 0; i < JobsInfo.length; i++) {
jobs.add(new Job(i, JobsInfo[i][0], JobsInfo[i][1]));
}
// SORTING BASED ON PROFITS
Collections.sort(jobs, (obj1, obj2) -> obj2.profit - obj1.profit);
ArrayList<Integer> seq = new ArrayList<>();
int time = 0;
for (int i = 0; i < jobs.size(); i++) {
Job curr = jobs.get(i);
if (curr.deadline > time) {
seq.add(curr.id);
time++;
}
}
System.out.println("max jobs:" + seq.size());
for (int i = 0; i < seq.size(); i++) {
System.out.print(seq.get(i) + " ");
}
System.out.println();
}
}
Comments
Post a Comment