标签:Intervals interval Overlapping Merge intervals value currentInterval nextInterva
refer to: https://www.algoexpert.io/questions/Merge%20Overlapping%20Intervals
Problem Statement
Sample example
Analysis
step 1: sort the intervals by their start value
step 2: check if the end value of the previous interval is larger than the start value of the latter interval
Code
def mergeOverlappingIntervals(intervals): # sort the intervals by startinf value. O(nlogn) sortedIntervals = sorted(intervals, key = lambda x: x[0]) mergedIntervals = []# space: O(n) currentInterval = sortedIntervals[0]#initialize the currentInterval as the first interval of the intervals mergedIntervals.append(currentInterval)#initialize the mergedIntervals as the first interval of the intervals for nextInterval in sortedIntervals:# for the first iteration, no update _, currentIntervalEnd = currentInterval nextIntervalStart, nextIntervalEnd = nextInterval if currentIntervalEnd >= nextIntervalStart: # overlap found, update the end value of interval currentInterval[1] = max(currentIntervalEnd, nextIntervalEnd) else: # no overlap, add the current(nextInterval) into the mergedIntervals array currentInterval = nextInterval mergedIntervals.append(currentInterval) return mergedIntervals
Time and Space complexity
O(nlogn) time complexity for sorting
O(n) space complexity for store the mergedIntervals(upper bound, all intervals kept)
标签:Intervals,interval,Overlapping,Merge,intervals,value,currentInterval,nextInterva 来源: https://www.cnblogs.com/LilyLiya/p/15028663.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。