Untitled

 avatar
user_0781376
plain_text
11 days ago
1.3 kB
16
Indexable
import java.util.Arrays;
import java.util.Comparator;

class Activity {
    int start, end;

    public Activity(int start, int end) {
        this.start = start;
        this.end = end;
    }
}

public class Main {
    public static void main(String[] args) {
        // Given list of activities with (start, end) times
        Activity[] activities = {
            new Activity(1, 3),
            new Activity(2, 5),
            new Activity(3, 9),
            new Activity(6, 8),
            new Activity(5, 7)
        };

        selectActivities(activities);
    }

    public static void selectActivities(Activity[] activities) {
        // Step 1: Sort activities by their finishing time (end)
        Arrays.sort(activities, Comparator.comparingInt(a -> a.end));

        System.out.println("Selected activities:");

        // Step 2: Pick the first activity
        int lastEndTime = -1;
        
        for (Activity activity : activities) {
            // Step 3: If the activity starts after or when the last one ended, select it
            if (activity.start >= lastEndTime) {
                System.out.println("Activity: (" + activity.start + ", " + activity.end + ")");
                lastEndTime = activity.end; // Update the last end time
            }
        }
    }
}
Editor is loading...
Leave a Comment