Created
October 31, 2023 14:39
-
-
Save akapitula/bc342b17d45088797b86ace60b07b209 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Write a function called sumIntervals/sum_intervals that accepts an array of intervals, and returns the sum of all the interval lengths. Overlapping intervals should only be counted once. | |
Intervals | |
Intervals are represented by a pair of integers in the form of an array. The first value of the interval will always be less than the second value. Interval example: [1, 5] is an interval from 1 to 5. The length of this interval is 4. | |
Overlapping Intervals | |
List containing overlapping intervals: | |
[ | |
[1, 4], | |
[7, 10], | |
[3, 5] | |
] | |
The sum of the lengths of these intervals is 7. Since [1, 4] and [3, 5] overlap, we can treat the interval as [1, 5], which has a length of 4. | |
Examples: | |
sumIntervals( [ | |
[1, 2], | |
[6, 10], | |
[11, 15] | |
] ) => 9 | |
sumIntervals( [ | |
[1, 4], | |
[7, 10], | |
[3, 5] | |
] ) => 7 | |
sumIntervals( [ | |
[1, 5], | |
[10, 20], | |
[1, 6], | |
[16, 19], | |
[5, 11] | |
] ) => 19 | |
sumIntervals( [ | |
[0, 20], | |
[-100000000, 10], | |
[30, 40] | |
] ) => 100000030 | |
Tests with large intervals | |
Your algorithm should be able to handle large intervals. All tested intervals are subsets of the range [-1000000000, 1000000000]. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment