#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param intervals int整型二维数组 
# @return int整型二维数组
#
class Solution:
    def mergeTimeIntervals(self , intervals: List[List[int]]) -> List[List[int]]:
        if not intervals:
            return []
        if len(intervals) == 1:
            return intervals
        # 按开始时间排下序
        intervals = list(sorted(intervals))
        
        # ret记录统计结果,cur用于记录当前区间
        ret = []
        cur = intervals[0]

        for interval in intervals[1:]:
            # 开始时间小于等于当前记录区间,合并区间
            if interval[0] <= cur[1]:
                cur[1] = max(interval[1], cur[1])
            # 结束当前计数,开始计算新的区间
            else:
                ret.append(cur)
                cur = interval
        # 遍历完了把最后记录的区间加上
        ret.append(cur)
        return ret