目录

  • 题目
  • 示例
  • 思路
  • 题解

题目

一个整数区间 [a, b] ( a < b ) 代表着从 a 到 b 的所有连续整数,包括 a 和 b。

给你一组整数区间intervals,请找到一个最小的集合 S,使得 S 里的元素与区间intervals中的每一个整数区间都至少有2个元素相交。

输出这个最小集合S的大小。

示例

示例 1:

输入: intervals = [[1, 3], [1, 4], [2, 5], [3, 5]]
输出: 3
解释: 考虑集合 S ={2, 3, 4}. S与intervals中的四个区间都有至少2个相交的元素。 且这是S最小的情况,故我们输出3。

示例 2:

输入: intervals = [[1, 2], [2, 3], [2, 4], [4, 5]]
输出: 5
解释: 最小的集合S ={1, 2, 3, 4, 5}.

注意:

intervals 的长度范围为[1, 3000]。
intervals[i] 长度为 2,分别代表左、右边界。
intervals[i][j] 的值是 [0, 10^8]范围内的整数。

思路

  1. 先将intervals中的数组排序,规则为:首先按照右边界从小到大排序,右边界相同的按照左边界由大到小排序(目的是先处理数组长度较短的)

  2. 遍历排序后的intervals,并维持一个集合temp。判断intervals中的每一个集合temp的交叉情况

    ①无交叉,需要在temp中添加两个元素,这两个元素分别为右边界和右边界前一个元素
    ②有一个交叉,在temp中添加一个元素,为右边界元素
    ③有两个交叉,直接跳过

题解

class Solution:def intersectionSizeTwo(self, intervals: List[List[int]]) -> int:   # 排序intervals.sort(key = lambda x:(x[1],-x[0]))# 维持的集合temp = [-1,-1]# 遍历intervalsfor x in intervals:# 有两个交叉或以上的元素if x[0] <= temp[-2]:continue# 下面为一个交叉和零个交叉的情况# 1、零个交叉,加入右边界前一个元素及下方右边界if x[0] > temp[-1]:temp.append(x[1]-1)# 2、一个交叉只需加入右边界temp.append(x[1])return len(temp) - 2

LeetCode每日一题——757. 设置交集大小至少为2相关推荐

  1. LeetCode·每日一题·757.设置交集大小至少为2·贪心

    链接:https://leetcode.cn/problems/set-intersection-size-at-least-two/solution/chun-c-by-xun-ge-v-t4m9/ ...

  2. 757. 设置交集大小至少为2 : 贪心运用题

    题目描述 这是 LeetCode 上的 757. 设置交集大小至少为2 ,难度为 困难. Tag : 「贪心」 一个整数区间    ( ) 代表着从 a 到 b 的所有连续整数,包括 a 和 b. 给 ...

  3. LeetCode 757. 设置交集大小至少为2

    LeetCode 757. 设置交集大小至少为2 题目描述 一个整数区间 [a, b] ( a < b ) 代表着从 a 到 b 的所有连续整数,包括 a 和 b. 给你一组整数区间interv ...

  4. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

  5. LeetCode 每日一题 3. 无重复字符的最长子串

    LeetCode 每日一题 3. 无重复字符的最长子串   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创 ...

  6. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  7. LeetCode每日一题之排列硬币

    前言: 大家好,今天是LeetCode每日一题的第十天,,给大家分享的是排列硬币,难度系数两颗星!废话不多说,先上题目! 1.1 题目要求 题目类型:排列硬币 题目内容: 总共有n枚硬币,将它们摆成一 ...

  8. Leetcode每日一题——思路小记

    文章目录 LeetCode每日一题 golang T15 2020.6.12 三数之和,双指针的运用 T70 2020.6.13 斐波那契数列 T1014 2020.6.17 最佳观光:双指针,计算公 ...

  9. LeetCode每日一题(题1028)

    题1028 前言 题目 思路 代码 错误 后记 前言 最近在刷LeetCode每日一题,每次做完之后总能有些收获,所以想着不如每天写个博客记录一下做的题目的解法以及自己写的时候问题出在哪里. 题目 从 ...

最新文章

  1. 使用moy快速开发后台管理系统(二)
  2. python t检验_A or B A/B测试-python独立双样本t检验
  3. 时间戳的转换和星期转换
  4. UITabBarController+UINavigationController+UIToolBar
  5. 看《超级演说家》有感
  6. loglevel python 不输出_Python 通过 Celery 框架实现分布式任务队列!
  7. svn文件大小类型限制,提交必须加多少字的说明
  8. (需求实战_进阶_04)SSM集成RabbitMQ 通配符模式 关键代码讲解、开发、测试
  9. java类继承语法_java类的继承(基础)
  10. yii学习笔记--url解析
  11. java核心知识点学习----多线程间的数据共享的几种实现方式比较
  12. 实现Apriori算法(python)
  13. 中国油页岩资源开发利用行业前景动态及未来发展趋势预测报告(2022-2027年)
  14. python分词,提高分词准确率
  15. web前端学习资源分享
  16. DSP eQEP正交编码
  17. Python基础重点复习(5)
  18. java让星星闪烁,js实现星星闪特效
  19. Flutter 接入iOS苹果内购支付踩坑过程
  20. torch常用基础函数

热门文章

  1. 主角技能是鞭炮java游戏_王者荣耀新年鞭炮技能是干嘛用的
  2. 【NOI2017模拟4.2】押韵
  3. 亚马逊店铺如何计算?
  4. SpringBoot与mockito那点事
  5. 【TIJ4】第三章全部习题
  6. 区块链技术特点都有哪些??
  7. leetcode 滑动窗口—— 209/1456
  8. 让你的app无法使用系统截图的探究
  9. oracle10g有exp吗,Oracle 10G中 EXP对象时报ORA-00932
  10. ClipDrawable资源的使用实例