Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int interval(List<Integer> first, List<Integer> last) {
- int n = first.size();
- List<List<Integer>> combined = new ArrayList<>();
- for (int i = 0; i < n; ++i) {
- combined.add(Arrays.asList(first.get(i), last.get(i)));
- }
- // Sorting intervals by `end`, then by `start`
- Collections.sort(combined, Comparator.comparingInt((List<Integer> a) -> a.get(1))
- .thenComparingInt(a -> a.get(0)));
- List<Integer> res = new ArrayList<>();
- res.add(combined.get(0).get(1) - 1);
- res.add(combined.get(0).get(1));
- for (int i = 1; i < n; i++) {
- int start = combined.get(i).get(0);
- int end = combined.get(i).get(1);
- if (start > res.get(res.size() - 1)) {
- res.add(end - 1);
- res.add(end);
- }
- else if (start > res.get(res.size() - 2)) {
- res.add(end);
- }
- }
- return res.size();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement