From 453689685a7329895f575989b90b3d93e72a1261 Mon Sep 17 00:00:00 2001 From: ProgrammingPete Date: Sun, 3 Apr 2022 18:44:55 -0400 Subject: [PATCH] 435 java solution --- java/435-Non-Overlapping-Intervals.java | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 java/435-Non-Overlapping-Intervals.java diff --git a/java/435-Non-Overlapping-Intervals.java b/java/435-Non-Overlapping-Intervals.java new file mode 100644 index 000000000..bb81c4722 --- /dev/null +++ b/java/435-Non-Overlapping-Intervals.java @@ -0,0 +1,32 @@ +public class Solution { + public int eraseOverlapIntervals(int[][] intervals) { + int intervalsRemoved = 0; + + //sort by the first vale in the intervals least to greatest + Arrays.sort(intervals, (arr1,arr2) -> Integer.compare(arr1[0], arr2[0])); + System.out.println(Arrays.deepToString(intervals)); + + //get the first interval + int[] intervalFirst = intervals[0]; + + // then loop through the rest of the intervals + for(int i = 1; i < intervals.length; i++){ + if(firstIntervalwithinSecond(intervalFirst, intervals[i])){ + //mark first interval to be removed + intervalsRemoved++; + // determine which interval to remove + //remove the interval that ends last + if(intervalFirst[1] > intervals[i][1]){ + intervalFirst = intervals[i]; + } + } else { + intervalFirst = intervals[i]; + } + } + return intervalsRemoved; + } + + public boolean firstIntervalwithinSecond(int[] intervalFirst, int[] intervalSecond){ + return intervalSecond[0] < intervalFirst[1]; + } +}