zoukankan      html  css  js  c++  java
  • 贪心_leetcode435

    #coding=utf-8

    # Definition for an interval.
    class Interval(object):
    def __init__(self, s=0, e=0):
    self.start = s
    self.end = e

    def compare1(x, y):
    if x.start < y.start:
    return -1
    elif x.start > y.start:
    return 1
    else:
    if x.end < y.end:
    return -1
    elif x.end > y.end:
    return 1
    else:
    return 0
    # 动态规划
    # 最长上升子序列
    class Solution1(object):
    def eraseOverlapIntervals(self, intervals):
    """
    :type intervals: List[Interval]
    :rtype: int
    """

    if not intervals:
    return 0

    intervals.sort(key=lambda x:(x.start,x.end))

    memo = [1 for i in range(len(intervals))]


    for i in range(1,len(intervals)):
    for j in range(i):
    if intervals[i].start >= intervals[j].end:
    memo[i] = max(memo[i],memo[j]+1)


    res = 0
    for i in range(len(memo)):
    res = max(res,memo[i])

    return len(intervals) - res

    # 贪心
    class Solution2(object):
    def eraseOverlapIntervals(self, intervals):
    """
    :type intervals: List[Interval]
    :rtype: int
    """
    if not intervals:
    return 0

    intervals.sort(key=lambda x: (x.end, x.start))

    res = 1

    pre = 0

    for i in range(1,len(intervals)):
    if intervals[i].start >= intervals[pre].end:
    res += 1
    pre = i



    return len(intervals) - res








  • 相关阅读:
    UE4 学习 噩梦项目
    字符串学习笔记
    luogu P4391 [BOI2009]Radio Transmission 无线传输
    luogu P2153 [SDOI2009]晨跑
    网络流学习笔记
    UVA437 【巴比伦塔 The Tower of Babylon】
    基础重修笔记
    luogu P1283 【平板涂色】
    树链剖分学习笔记
    DP学习笔记
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10556877.html
Copyright © 2011-2022 走看看