zoukankan      html  css  js  c++  java
  • 在列表里添加不重叠的区间

    现有列表a, a中元素是如[x,y]格式的数组,代表一段数字区间, 如[1,3]表示从1到3之间的任何数字

    判断给定的新数字区间new_element(例如: [10, 25])能不能添加到列表a中,返回True or False

    要求任何被添加进入列表a的新数字区间,必须满足以下条件:

    • 新插入的数字区间[x,y]中,y必须大于x
    • 列表a中每一组数字区间不能存在重叠区域
    • 例如[3, 5]和[7, 8]之间没有重叠,但是[3,5]和[4,6]有重叠的区域(注意: [3, 5]和[5, 6]之间认为是无重叠)

    可以得知区间重叠的形式只有四种




    a = [
        [6, 6.9],
        [3, 5.6],
        [12, 22],
        [37.5, 97.8]
    ]
    
    
    def can_add_in(a, new_element):
        #   y 必须大于 x
        if new_element[1] <= new_element[0]:
            return False
    
        #   和已存在的每个区间进行比较
        for i in a:
            # print(i)
            #   1 和 4   的情况:新区间的起始在已有区间内
            if i[1] > new_element[0] and i[0] <= new_element[0]:
                return False
            #   2 和 3   的情况:已有区间的起始在新区间内
            elif i[0] >= new_element[0] and i[0] < new_element[1]:
                return False
    
        return True
    
    
    print(can_add_in(a, [6.9, 12]))
    




  • 相关阅读:
    JAVA_集合_作业01
    Java_Objects_hashCode
    Java成员内部类
    Java集合练习_实现购物车需求
    Java初级_单例设计模式
    HelloWorld
    vue中视频标点
    防抖节流?俩者区别?vue如何使用防抖、节流来解决点击问题?
    keep-alive
    axios和ajax的区别
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11938989.html
Copyright © 2011-2022 走看看