<p>假设区域已排序</p>
<pre><code>def merge_regions(regions):
# Init the first region
final_regions = []
final_regions.append(regions[0])
for i in range(1, len(regions)):
region = regions[i]
last_region = final_regions[-1]
if region[0] <= last_region[1]:
# Regions overlap, get the new end
new_end = max(region[1], last_region[1])
final_regions[-1] = [last_region[0], new_end]
else:
final_regions.append(region)
return final_regions
</code></pre>
<p>输入:</p>
<pre><code>[
[ 45, 47], #group 1
[ 46, 47], #group 1
[ 53, 54], #group 2
[ 63, 66], #group 3
[ 64, 66], #group 3
[ 65, 66], #group 3
[ 66, 67], #group 3
[ 68, 70], #group 4
[ 69, 70], #group 4
[ 70, 71], #group 4
[ 70, 72], #group 4
[ 80, 81], #group 5
[ 92, 93], #group 6
[ 94, 95], #group 7
[ 94, 96], #group 7
[ 94, 97], #group 7
[ 94, 98], #group 7
[103, 104]]
</code></pre>
<p>输出:</p>
<pre><code>[[45, 47],
[53, 54],
[63, 67],
[68, 72],
[80, 81],
[92, 93],
[94, 98],
[103, 104]]
</code></pre>