区间包含

区间包含

个人信息:就读于燕大本科软件工程专业 目前大三;

本人博客:google搜索“cqs_2012”即可;

个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献;

编程语言:C++ ;

编程坏境:Windows 7 专业版 x64;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一种基于列表存储区间信息的方法实现: ```python def is_overlap(interval, intervals): """ 判断区间是否与当前区间重叠 """ for i in intervals: if interval[1] >= i[0] and i[1] >= interval[0]: return True return False def add_interval(interval, intervals): """ 将待判断区间与当前区间不重叠的部分加入到当前区间中 """ new_intervals = [] for i in intervals: if interval[1] < i[0] or i[1] < interval[0]: new_intervals.append(i) else: # 当前区间与待判断区间重叠 if interval[0] >= i[0] and interval[1] <= i[1]: # 待判断区间被当前区间包含,直接跳过 return intervals elif interval[0] < i[0] and interval[1] <= i[1]: # 待判断区间与当前区间左部分重叠 new_intervals.append([interval[0], i[0]-1]) elif interval[0] >= i[0] and interval[1] > i[1]: # 待判断区间与当前区间右部分重叠 new_intervals.append([i[1]+1, interval[1]]) else: # 待判断区间与当前区间包含关系 new_intervals.append(i) new_intervals.append(interval) return new_intervals ``` 其中,`is_overlap`函数用于判断待判断区间是否与当前区间重叠,`add_interval`函数用于将待判断区间加入到当前区间中。具体实现方法如下: 1. 遍历当前所有区间,判断待判断区间是否与当前区间重叠。 2. 若待判断区间与当前区间重叠,则根据重叠的情况将待判断区间分为左、右、包含三种情况进行处理,得到新的区间列表。 3. 若待判断区间与当前区间不重叠,则将当前区间加入到新的区间列表中。 4. 最后将待判断区间加入到新的区间列表中,并返回新的区间列表。 使用示例: ```python intervals = [[1,3], [6,9], [11,15]] interval = [8,10] if is_overlap(interval, intervals): intervals = add_interval(interval, intervals) print(intervals) # 输出 [[1, 3], [6, 10], [11, 15]] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值