-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path057.rb
More file actions
31 lines (29 loc) · 689 Bytes
/
057.rb
File metadata and controls
31 lines (29 loc) · 689 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Definition for an interval.
# class Interval
# attr_accessor :start, :end
# def initialize(s=0, e=0)
# @start = s
# @end = e
# end
# end
# @param {Interval[]} intervals
# @param {Interval} new_interval
# @return {Interval[]}
def insert(intervals, new_interval)
intervals.push(new_interval)
intervals.sort! {|a, b| a.start <=> b.start}
result = []
intervals.each do |interval|
if result.length == 0
result.push(interval)
else
last_end = result[-1].end
if interval.start > last_end
result.push(interval)
else
result[-1].end = interval.end if interval.end >= last_end
end
end
end
result
end