Skip to content

Latest commit

 

History

History
40 lines (33 loc) · 1.03 KB

01-Sum-of-Intervals.md

File metadata and controls

40 lines (33 loc) · 1.03 KB

Sum of Intervals

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

Solution

def sum_of_intervals(intervals):
	sum_set = set()
	for i in range(len(intervals)):
		for j in range(intervals[i][0],intervals[i][1]):
			sum_set.add(j)
	return len(sum_set)