LintCode 60 – Java

/**
 * Definition of Interval:
 * public classs Interval {
 *     int start, end;
 *     Interval(int start, int end) {
 *         this.start = start;
 *         this.end = end;
 *     }
 * }
 */

public class Solution {
    /**
     * @param intervals: interval list.
     * @return: A new interval list.
     */
    public List<Interval> merge(List<Interval> intervals) {
        // write your code here
        List<Interval> ans = new ArrayList<>();
        
        if (intervals == null) {
            return ans;
        }
        
        intervals.sort(Comparator.comparing(i -> i.start));
 //lambda 函数
        Interval last = null;
        
        for (Interval item : intervals) {
                if (last == null || last.end < item.start) {
                    ans.add(item);
                    last = item;
                } else {
                    last.end = Math.max(last.end, item.end);
                }
            }
        
         return ans;

    }
}

Leave a comment

Design a site like this with WordPress.com
Get started