Course Schedule III LeetCode solution in Java
1class Solution {2public int scheduleCourse(int[][] C) {3Arrays.sort(C, (a, b) -> a[1] - b[1]);4PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> b - a);5int total = 0;6for (int[] course : C) {7int dur = course[0], end = course[1];8if (dur + total <= end) {9total += dur;10pq.add(dur);11} else if (pq.size() > 0 && pq.peek() > dur) {12total += dur - pq.poll();13pq.add(dur);14}15}16return pq.size();17}18}