zoukankan      html  css  js  c++  java
  • 【leetcode】757. Set Intersection Size At Least Two

    题目如下:

    解题思路:贪心算法。首先把intervals按第二个元素从小到大排序,然后遍历intervals,如果集合S和intervals[i]没有交集,那么把intervals[i]的最大值和次大值加入集合S;如果交集只有一个元素,则把最大值加入S。

    代码如下:

    class Solution(object):
        def intersectionSizeTwo(self, intervals):
            """
            :type intervals: List[List[int]]
            :rtype: int
            """
            import bisect
            def cmpf(l1,l2):
                if l1[1] != l2[1]:
                    return l1[1] - l2[1]
                return l2[0] - l1[0]
            intervals.sort(cmp=cmpf)
            res = None
            for low,high in intervals:
                if low == 29 and high == 37:
                    pass
                if res == None:
                    res = [high-1,high]
                elif res[-1] < low:
                    #res[1] = low + 1
                    res.append(high-1)
                    res.append(high)
                elif res[-1] == low:
                    res.append(high)
                elif bisect.bisect_right(res,high) -  bisect.bisect_left(res,low)  == 1:
                    res.append(high)
                #print res
            #print intervals
            #print res
            return len(res)
  • 相关阅读:
    webstorm打开项目找不到git
    Redis 下载与安装(Windows版)
    element-UI el-table样式(去边框和滚动条样式)
    MVVM
    HTTP
    TCP/IP
    vue双向绑定
    Vue组件化原理
    JavaScript
    css中可继承与不可继承属性
  • 原文地址:https://www.cnblogs.com/seyjs/p/9718414.html
Copyright © 2011-2022 走看看