leetcode每日一题 2580 统计将重复区间合并成组的方案数

给你一个二维整数数组 ranges ,其中 ranges[i] = [starti, endi] 表示 starti 到 endi 之间(包括二者)的所有整数都包含在第 i 个区间中。

你需要将 ranges 分成 两个 组(可以为空),满足:

  • 每个区间只属于一个组。
  • 两个有 交集 的区间必须在 同一个 组内。

如果两个区间有至少 一个 公共整数,那么这两个区间是 有交集 的。

  • 比方说,区间 [1, 3] 和 [2, 5] 有交集,因为 2 和 3 在两个区间中都被包含。

请你返回将 ranges 划分成两个组的 总方案数 。由于答案可能很大,将它对 109 + 7 取余 后返回。

输入:ranges = [[6,10],[5,15]]
输出:2
解释:
两个区间有交集,所以它们必须在同一个组内。
所以有两种方案:
- 将两个区间都放在第 1 个组中。
- 将两个区间都放在第 2 个组中。

首先初始化m = 0; maxR = -1。 把区间按照左端点从小到大排序,遍历区间,同时维护当前合并的最大区间右端点maxR

  • 如果当前区间的左端点l大于maxR,由于我们已经按照左端点排序了,那么后面任何区间都不会和之前的区间有交集,换句话说,产生了一个新的大区间,把m+1,同时maxR = 当前区间右端点r。
  • 否则,当前区间要合并到大区间内,用当前区间右端点r更新maxR的最大值。

class Solution:def countWays(self, ranges: List[List[int]]) -> int:ranges.sort(key = lambda p: p[0])m, max_r = 0, -1for l, r in ranges:if l > max_r:m += 1max_r = max(max_r, r)return pow(2,m,1_000_000_007)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变位词,java代码实现

需求 需求:检查两个词是否是“变为词”(变位词:两个词是有相同的字母不同的排序组成,例如:earth和heart,python和typhon)输入:两个单词输出:0或者1,0&#x…

通俗易懂:描述MySQL中SET和ENUM数据类型的异同。

MySQL中的SET和ENUM数据类型均用于限制字段可接受的值范围,但它们的设计用途和功能特性有所不同: SET类型 - SET是一种集合类型,它可以存储一组预定义的离散值,并且在一个SET字段中可以同时存储多个值。 - SET字段内的值是互斥的…

ES5和ES6的深拷贝问题

深拷贝我们知道是引用值的一个问题,因为在拷贝的时候,拷贝的是在内存中同一个引用。所以当其中的一个应用值发生改变的时候,其他的同一个引用值也会发生变化。那么针对于这种情况,我们需要进行深度拷贝,这样就可以做到…

高效篇02-如何选择适合自己的工作/如何选择offer

前言 你有没有遇到以下3个问题。 1、对当前工作不满意,但是好像不知道具体哪里不满意。 2、有想要换工作的想法,但是不知道该换一个什么样的工作。 3、已经在找工作了,说不定手上也有几份 offer 了,但是不知道该如何选择。 在这篇…

Spring是如何解决循环依赖问题的?

目录 问题介绍什么是Spring中的三级缓存?Spring中的三级缓存是如何解决循环依赖问题的?解决Spring循环依赖问题一定需要第三级缓存吗?解决Spring循环依赖问题一定需要第二级缓存吗?什么场景下的Spring循环依赖问题无法解决?采用了构造器的注入方式相互依赖的bean都是原型b…

读3dsr代码②训练

train_dada 首先初始化权重 def weights_init(m):classname m.__class__.__name__if classname.find(Conv) ! -1:m.weight.data.normal_(0.0, 0.02)elif classname.find(BatchNorm) ! -1:m.weight.data.normal_(1.0, 0.02)m.bias.data.fill_(0)他的训练数据是imagenet的rgb&…

代码随想录算法训练营DAY7| C++哈希表Part.2|LeetCode:454.四数相加II、383.赎金信、15. 三数之和、18.四数之和

文章目录 454.四数相加II思路C代码 383.赎金信C 代码 15. 三数之和排序哈希法思路C代码 排序双指针法思路去重C代码 18.四数之和前言剪枝C代码 454.四数相加II 力扣题目链接 文章链接:454.四数相加II 视频链接:学透哈希表,map使用有技巧&…

工业物联网关的应用及相关产品-天拓四方

随着科技的飞速发展,智能制造业已成为工业领域的转型方向。在这一转变中,工业物联网关发挥着至关重要的作用。作为连接物理世界与数字世界的桥梁,工业物联网关不仅实现了设备与设备、设备与云平台之间的互联互通,更通过实时数据采…

0.96寸OLED屏调试 ----(四)

所需设备: 1、USB 转 SPI I2C 适配器;内附链接 2、0.96寸OLED显示模块; 备注:专业版、升级版都适用; 继续我们OLED模块的熟悉 : 指令详解 基础指令 1.设置对比度 (81HA[7:0])  …

贵金属投资热:为何投资者纷纷涌入黄金、白银市场

在当今复杂多变的市场中,贵金属投资热度居高不下,尤其以黄金、白银为代表的贵金属。那这背后的原因到底是什么呢,跟随金田金业的脚步,我们来一探究竟。 贵金属投资之所以备受瞩目,首先源于其独特的避险属性。在全球经济…

兼顾陪读|本科学历律师自费赴美国加州大学伯克利分校访学

S律师拟陪同孩子赴海外就读,决定以访问学者身份,申请美国J类签证出国以兼顾陪读。因本科学历,无文章且有地域要求,自己申请无果后做了全权委托。为此我们酌情制定了三条申请策略,最终落实加州大学伯克利分校的访学职位…

AI大模型学习——AI领域技术发展

目录 前言 一、AI大模型学习的理论基础 二、AI大模型的训练与优化 三、AI大模型在特定领域的应用 四、AI大模型学习的伦理与社会影响 五、未来发展趋势与挑战 总结 前言 在当前技术环境下,AI大模型学习不仅要求研究者具备深厚的数学基础和编程能力&#xff…

鸿蒙打包so及引用

一、打包so 1. 环境,DevEco Studio3.1 2. 创建c工程 创建完成后,如下图: 3. 打包so 先配置 然后 二、引用so 1. 新建普工项目 2. 在src同一层级下创建libs文件夹,将so文件拷入 3. 将c工程中的侧接口文件及声明文件复制到项目…

手术室智慧管理平台

手术室智慧管理平台 所属领域 数字化手术室智慧管理平台处于医疗信息化和医疗智能化领域的交叉点上。它不仅涉及医疗信息系统的建设和管理,更是医疗智能化的典型应用之一。在医疗信息化方面,该平台利用先进的信息技术和数据管理手段,实现对手…

协程库-锁类-实现线程互斥同步

mutex.h:信号量,互斥锁,读写锁,范围锁模板,自旋锁,原子锁 锁 **锁不能进行拷贝操作:**锁是用于管理多线程并发访问共享资源的同步原语。这些锁包括互斥锁(mutex)、读写锁…

Allegro许可更新流程

解锁企业软件管理新篇章,Allegro许可更新流程助力高效运营 在数字化经济的时代,软件已经成为企业运营的关键要素。然而,随着技术的不断更新换代,软件的许可证也需要随之更新。如何确保软件许可的及时更新,避免因过期或…

AI智能分析网关V4使用GB28181注册到EasyCVR平台的具体步骤

旭帆科技的智能分析网关V4内含近40种智能分析算法,包括人体、车辆、消防、环境卫生、异常检测等等,在消防安全、生产安全、行为检测等场景应用十分广泛。如常见的智慧工地、智慧校园、智慧景区、智慧城管等等,还支持抓拍、记录、告警、语音对…

小黑的Vue前端之路:js中通过构造函数封装,设置对象getter和setter方法

js中构造函数创建对象 JavaScript本身并不是设计成面向对象的,所以没有class之类的关键字用来定义类,但JavaScript本身相当灵活,可以利用function关键字来定义类并创建对象。 例如js创建person对象 通过new关键字,把函数当成了创建对象的构造函数 function Pers…

某康安全开发工程师一面

一、反射型XSS跟DOM型XSS的最大区别 DOM型xss和别的xss最大的区别就是它不经过服务器,仅仅是通过网页本身的JavaScript进行渲染触发的。 二、Oracle数据库了解多吗 平常用的多的是MySQL数据库,像Oracle数据库也有了解,但是用的不多。 三、…

Fastjson反序列化漏洞原理与漏洞复现(基于vulhub靶场)

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…