public class Solution { public IList Merge(IList intervals) { var len = intervals.Count; if (len == 1) { return intervals; } var list = intervals.OrderBy(x => x.start).ToList(); int i = 0; while (i < list.Count) { int j = i; while (i 1 && list[j].end >= list[i + 1].start) { //可以融合 //前项修改,后项删除 list[j].start = Math.Min(list[j].start, list[i + 1].start); list[j].end = Math.Max(list[j].end, list[i + 1].end); list.RemoveAt(i + 1); } i++; } return list; } }
leetcode56