Grokking the Coding Interview: Patterns for Coding Questions
Ask Author
Back to course home

0% completed

Vote For New Content
Mohammed Dh Abbas
Better solution

Mohammed Dh Abbas

Jul 16, 2024

#class Interval: # def __init__(self, start, end): # self.start = start # self.end = end class Solution: def merge(self, intervals_a, intervals_b): result = [] def do_intersect(a, b): return (a.end <= b.end and b.start <= a.end) or (b.end <= a.end and a.start <= b.end) i = j = 0 while i < len(intervals_a) and j < len(intervals_b): # in there is intersection add the point if do_intersect(intervals_a[i], intervals_b[j]): result.append(Interval(max(intervals_a[i].start, intervals_b[j].start), min(intervals_a[i].end, intervals_b[j].end))) # move the smaller interval if intervals_a[i].end < intervals_b[j].end: i += 1 elif intervals_a[i].end == intervals_b[j].end and intervals_a[i].start < intervals_b[j].start: i +=1 else: j += 1 return result

0

0

Comments
Comments

On this page