Quantcast
Channel: Leetcode 56: Merge Intervals - Code Review Stack Exchange
Viewing all articles
Browse latest Browse all 5

Answer by tinstaafl for Leetcode 56: Merge Intervals

$
0
0

I would suggest that a custom comparer would work better than orderby, since 2 intervals with the same start won't necessarily get sorted right:

public IList<Interval> Merge(IList<Interval> intervals){    var outVal = new SortedSet<Interval>(intervals,new IntervalComparer());    for (int i = 0; i < outVal.Count - 1; i++)    {        Interval curr = outVal.ElementAt(i);        Interval next = outVal.ElementAt(i + 1);        if(next.start - curr.end < 1)        {            curr.end = Math.Max(curr.end, next.end);            outVal.Remove(next);            i--;        }    }    return outVal.ToList();}public class IntervalComparer : IComparer<Interval>{    public int Compare(Interval lhs, Interval rhs)    {        if (lhs.start == rhs.start)        {            return lhs.end.CompareTo(rhs.end);        }        return lhs.start.CompareTo(rhs.start);    }}

Viewing all articles
Browse latest Browse all 5

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>