Sum of Intervals
Description:
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]
.
Similar Kata:
Stats:
Created | Dec 23, 2013 |
Published | Dec 23, 2013 |
Warriors Trained | 99357 |
Total Skips | 16911 |
Total Code Submissions | 324476 |
Total Times Completed | 40548 |
JavaScript Completions | 11533 |
CoffeeScript Completions | 106 |
PHP Completions | 894 |
Python Completions | 16452 |
Ruby Completions | 778 |
Java Completions | 2843 |
C++ Completions | 2541 |
Clojure Completions | 142 |
C# Completions | 2079 |
Elixir Completions | 118 |
Dart Completions | 451 |
Crystal Completions | 16 |
Julia Completions | 68 |
Haskell Completions | 434 |
TypeScript Completions | 1155 |
Racket Completions | 26 |
C Completions | 930 |
NASM Completions | 11 |
COBOL Completions | 12 |
Rust Completions | 472 |
Go Completions | 439 |
Scala Completions | 86 |
λ Calculus Completions | 6 |
Lua Completions | 48 |
Total Stars | 3069 |
% of votes with a positive feedback rating | 92% of 3942 |
Total "Very Satisfied" Votes | 3358 |
Total "Somewhat Satisfied" Votes | 516 |
Total "Not Satisfied" Votes | 68 |
Total Rank Assessments | 10 |
Average Assessed Rank | 4 kyu |
Highest Assessed Rank | 4 kyu |
Lowest Assessed Rank | 5 kyu |