当前位置: 首页 > news >正文

【力扣100】56.合并区间

添加链接描述

class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:# 队列,每次加进来两个元素:1.不包含:第一个元素出去,并放入result;2.包含:合并n=len(intervals)result=[]que=collections.deque()if n==0:return [[]]if n==1:return [intervals[0]]# 初始化intervals=sorted(intervals,key=lambda x:x[0])for i in intervals:if len(que)<2:que.append(i)if len(que)==2:start=max(que[0][0],que[1][0])end=min(que[0][1],que[1][1])left_border=min(que[0][0],que[1][0])right_border=max(que[0][1],que[1][1])if start<=end:que.append([left_border,right_border])que.popleft()que.popleft()else:result.append(que.popleft())while que:result.append(que.popleft())return result       

思路:

  1. 不存在的条件
  2. 这道题目其实找的是所有区间里的交集,那么这些区间的在数组中的先后顺序其实就无所谓
  3. 先用每一个一位数组的第一个值排序,目的是找到最开始的起点sorted(array,key=lambda x:x[0])
  4. 然后就是如何判断两个区间有交集?
interval1 = [3, 7]
interval2 = [5, 10]# 获取交集的起始点和结束点
start = max(interval1[0], interval2[0])
end = min(interval1[1], interval2[1])# 检查是否存在交集
if start <= end:intersection = [start, end]print("两个区间的交集为:", intersection)
else:print("这两个区间没有交集")

这道题写了好久,但是收获还是有的,哈哈


http://www.lryc.cn/news/257784.html

相关文章:

  • 重磅!2023中国高校计算机大赛-人工智能创意赛结果出炉
  • [Linux] 用LNMP网站框架搭建论坛
  • 记录 | 使用samba将ubuntu文件夹映射到windows实现共享文件夹
  • leetcode 股票DP系列 总结篇
  • 深入理解Java虚拟机---对象的创建和内存异常溢出
  • windows MYSQL解决中文乱码问题
  • EasyRecovery2024免费永久版手机数据恢复软件
  • 2023/12/11 作业
  • 【11】Qt Designer
  • 【算法优选】 动态规划之路径问题——贰
  • 从视频中截取指定帧图片
  • 2023最新vue安装(npm,yarn,国内镜像,vue安装,vue导包)全套教程2023年12月最新
  • 性能测试基础
  • 算法与数据结构--最短路径Dijkstra算法
  • ASP.NET Core 8 在 Windows 上各种部署模型的性能测试
  • 跨框架解决方案-Mitosis【Context】
  • 有哪些重要的项目是用 Python 开发的?
  • 【计算机网络】应用层电子邮件协议
  • 视频剪辑:视频转码实用技巧,批量将MP4转为MP3音频
  • 体系化学习运筹学基础算法的实践和总结
  • 【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史
  • 重写 AppiumService 类,添加默认启动参数,并实时显示启动日志
  • [方法论]allocation 空间内容分配
  • 家电制造数字孪生5G智能工厂可视化系统,加速家电制造产业数字化转型
  • Flink入门之部署(二)
  • SQL命令---修改字段名
  • 设计模式篇---代理模式
  • STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计
  • ES-分析器
  • 智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码