435. Non-overlapping Intervals

题目要求:
题目要求
解题思路:
  • 上次打气球那给题目是按照第二个元素排序
  • 这次是按照第一个元素进行排序!!!
代码:
class Interval(object):
    def __init__(self, s=0, t=0):
        self.start = s
        self.end = t


class Solution(object):
    def earseOverInterval(self, intervals):
        """
        :param intervals: List[Interval]
        :return:int
        """
        # intervals.sort(key=lambda interval: interval.start)
        intervals.sort(key=lambda interval: interval.start)

        result, prev = 0, 0
        for i in range(1, len(intervals)):
            if intervals[i].start < intervals[prev].end:
                if intervals[i].end < intervals[prev].end:
                    prev = i
                result += 1
            else:
                prev = i

        return result


    def eraseOverlapIntervalstwo(self, intervals):
        """
        :type intervals: List[Interval]
        :rtype: int
        """
        intervals.sort(key=lambda interval: interval.start)
        result, prev = 0, 0
        for i in range(1, len(intervals)):
            if intervals[i].start < intervals[prev].end:
                if intervals[i].end < intervals[prev].end:  #这个可以勉强称为贪心吧,画图理解
                    prev = i
                result += 1
            else:
                prev = i
        return result


if __name__ == "__main__":
    print(Solution.eraseOverlapIntervalstwo(self=None, intervals=[[1,2], [2,3], [3,4], [1,3]]))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容