Untitled
unknown
plain_text
5 months ago
1.5 kB
3
Indexable
import java.util.*; public class TaskScheduler { public static int minTime(int[] taskTypes, int[] memories, int M) { // Group tasks by their type Map<Integer, List<Integer>> taskMap = new HashMap<>(); for (int i = 0; i < taskTypes.length; i++) { int type = taskTypes[i]; int memory = memories[i]; taskMap.computeIfAbsent(type, k -> new ArrayList<>()).add(memory); } int totalTime = 0; for (List<Integer> memList : taskMap.values()) { // Sort the memory list for the current task type Collections.sort(memList); int n = memList.size(); int pairs = 0; int left = 0, right = n - 1; // Use two-pointer technique to find valid pairs while (left < right) { if (memList.get(left) + memList.get(right) <= M) { pairs++; left++; right--; } else { right--; } } // Calculate time for the current task type totalTime += (n - pairs); } return totalTime; } public static void main(String[] args) { int[] taskTypes = {1, 2, 1, 2, 2, 3}; int[] memories = {4, 4, 3, 7, 10, 3}; int M = 10; System.out.println(minTime(taskTypes, memories, M)); // Output: 5 } }
Editor is loading...
Leave a Comment